codenameone - 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()
解决方案
构建提示还不够,您必须使用:
DeviceCalendar dc = DeviceCalendar.getInstance();
if(!dc.hasPermissions()) {
// show message
return;
}
提示许可。Android 6 及更高版本可让您查看授予应用程序的权限。
推荐阅读
- firebase - Flutter Firebase 已成功更新显示名称但仍无法访问。它是空的
- php - 如何用函数替换这些简单的 if else PHP 语句?
- php - 从自定义 URL 获取用户名时,是否可以在 LARAVEL 中将用户标记为已登录?
- javascript - 为什么 async.map 返回多个数组副本?
- splunk - 如何使用 Outlook 凭据发送 splunk 电子邮件
- vim - 如何在VIM中突出显示光标位置的水平和垂直线的位置?
- neo4j - Neo4j 无法使用空属性值合并节点
- cloudflare - 如何通过 API 或 Terraform 禁用 Cloudflare Browser Insights?
- rust - 我可以创建一个自定义迭代器迭代一个序列然后另一个(链不起作用)
- python - python中实例方法和静态方法同名