首页 > 解决方案 > Codenameone:如何在 Android 上访问日历

问题描述

在我的应用程序中,我使用 CN1 日历库来访问设备日历。我添加了 Android-build-hints 以便允许我的应用程序访问日历(我可以在应用程序设置中证明这一点)。但是 deviceCalender.getCalendars() 方法返回 null - 这是用“无权限”记录的。如何访问 Android 设备上的日历?(顺便说一句:它在 iOS 上运行良好)。

测试设备:HUAWEI P-Smart,Android 8.0.0.138

这是我使用的代码:

if (deviceCalender.hasPermissions())
{
    Collection<String> cals = deviceCalender.getCalendars();

    if( cals != null )
    {
        System.out.println("Length of Calendar-List: " + cals.size());
    }
    else
    {
        System.out.println("No permission on getCalendars()");
    }
}
else
    System.out.println("No permission on hasPermissions()");

在 Android-Studio 我只得到这个控制台输出:

2019-07-25 11:30:35.185 25342-25375/de.zeitkuenstlervoll.gtd.gui I/System.out: No permission on getCalendars()

我附上了您可以看到的设备屏幕截图,该应用程序有权访问日历。在此处输入图像描述

标签: codenameone

解决方案


构建提示还不够,您必须使用:

DeviceCalendar dc = DeviceCalendar.getInstance();
if(!dc.hasPermissions()) {
    // show message 
    return;
}

提示许可。Android 6 及更高版本可让您查看授予应用程序的权限。


推荐阅读