我正在为我的科尔多瓦应用程序使用'imagepicker'插件从移动画廊获取图像并使用它们。我正在测试我的应用程序在Android 6.0设备,这是问题,棉花糖Android 6.0需要在运行时权限不像旧版本“它正在旧版本”,但在API 23或更高时,它参加开放画廊它立即关闭,应用程序崩溃。当我搜索时发现我需要许可才能做到这一点。所以我就开始使用“Android的权限科尔多瓦插件”,并通过复制他们在这个页面提供的示例:https://www.npmjs.com/package/cordova-plugin-android-permissions科尔多瓦应用程序'Android权限科尔多瓦插件'没有显示权限对话框
是:
var permissions = cordova.plugins.permissions;
permissions.hasPermission(permissions.CAMERA, checkPermissionCallback, null);
function checkPermissionCallback(status) {
if(!status.hasPermission) {
var errorCallback = function() {
console.warn('Camera permission is not turned on');
}
permissions.requestPermission(
permissions.CAMERA,
function(status) {
if(!status.hasPermission) errorCallback();
},
errorCallback);
}
}
控制台总是说:“摄像头权限未打开”并没有权限对话框显示。
然后我再次搜查,发现该解决的问题,它`答案,所以我安装了“科尔多瓦 - 插件诊断”,并试图将此代码:
function requestPermission(){
cordova.plugins.diagnostic.requestRuntimePermission(function(status){
switch(status){
case cordova.plugins.diagnostic.runtimePermissionStatus.GRANTED:
console.log("Permission granted (or already granted) - call the plugin");
// call SQLite plugin
break;
case cordova.plugins.diagnostic.runtimePermissionStatus.DENIED:
console.log("Permission denied - ask again");
alert("Come on user, we really need this. I'll ask again...");
requestPermission();
break;
case cordova.plugins.diagnostic.runtimePermissionStatus.DENIED_ALWAYS:
console.log("Permission permanently denied");
alert("Well that's it, we're dead Jim");
navigator.app.exitApp();
break;
}
}, function(error){
console.error("The following error occurred: "+error);
}, cordova.plugins.diagnostic.runtimePermission.READ_PHONE_STATE);
}
requestPermission();
应用程序关闭,没有对话也表示,我想我不能得到这个插件应该做什么,我如何获得打开图库的权限。如果有人能给我完整的例子打开画廊,并选择权限的形象,这将是很大的帮助。
对不起,我的英语,感谢您的耐心等待。
试试这个,可能是工作stackoverflow.com/a/41221852/5488468 –
你尝试完全卸载你的应用程序并重新安装?这可能会清除以前被拒绝的权限,并为您提供全新的开始。 – Alex