繁体   English   中英

Android 6上的Appcelerator SDK 5.4 Android日历权限

[英]Appcelerator SDK 5.4 Android Calendar permission on Android 6

我已经阅读了很多帖子,但问题仍然存在......

我的应用程序需要日历权限,这将在Android 5之前正常工作。在我的trap.xml中,权限ar设置如下:

<android xmlns:android="http://schemas.android.com/apk/res/android">
    <manifest>
        <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="23"/>
        <uses-permission android:name="android.permission.READ_CALENDAR"/>
        <uses-permission android:name="android.permission.WRITE_CALENDAR"/>
    </manifest>
</android>

当我尝试设置我在Jira上找到的权限时:

function calenderTask() {
    if (Ti.Calendar.hasCalendarPermissions()) {
        showCalendars(Ti.Calendar.selectableCalendars);
    } else {
        Ti.Calendar.requestCalendarPermissions(function(e) {
            if (e.success) {
                showCalendars(Ti.Calendar.selectableCalendars);
            } else {
                Ti.API.error(e.error);
                alert('Access to calendar is not allowed');
            }
        });
    }
}

function showCalendars(calendars) {
    for (var i = 0; i < calendars.length; i++) {
        Ti.API.info("Calender: "+calendars[i].name);
    }
}

calenderTask();

只有在设备上全新安装(Samgung S7,Android 6)后,当我在代码中发出警报时才会有一些操作。

下一次运行看起来代码被忽略了。

而且......最重要的是,没有权限设置。

当我在我的设备的设置中手动设置权限时,该应用程序工作正常。

请问有人为我提供解决方案吗?

我也试图找到一种更好的方法来检查Android 6上的日历权限。同时,我正在使用此代码将用户权限发送到对话框上的应用程序设置:

var dialog = Ti.UI.createAlertDialog();
dialog.message = 'Please check your calendar permissions';
dialog.cancel = 1;
dialog.buttonNames = ['Settings', 'Cancel'];
dialog.addEventListener('click', function(e){
var intentData = {action: "android.settings.APPLICATION_DETAILS_SETTINGS", data: "package:" + Ti.App.getId()};
var flags = [ Ti.Android.FLAG_ACTIVITY_NEW_TASK, Ti.Android.FLAG_ACTIVITY_NO_HISTORY, Ti.Android.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS];
if (e.index === 0){
 win.openIntent(intentData, flags);
}
});
dialog.show();

我希望它有点帮助......

我找到了解决我的问题的解决方案/解决方法,没有要求日历权限。

在设备的设置部分,我通过特定应用手动删除了权限。 现在我对已安装的应用程序的所有设置进行了重置,然后在启动应用程序的特定部分时在设备上询问问题。 因此只需删除权限并从设备中删除应用程序是不够的!

我使用过之前列出的代码部分,来自Jira。

所以,目前我的问题已经解决了(我认为)并且应用程序在首次安装后要求获得所需的权限。

卡洛斯,感谢您的评论,我希望您也可以对我的调查做些什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM