在Android 6.0中Cordova相机插件权限拒绝

时间:2016-04-06 12:02:10

标签: cordova ionic-framework camera android-6.0-marshmallow android-permissions

我正在使用ionic来开发移动应用程序。该应用程序需要相机。我在我的项目中添加了Cordova相机插件。我也在使用ngCordova包装器。该应用程序运行正常。最后一天,我使用一个设备与Android版6.0(Marshmallow)来测试我的应用程序。当我点击按钮时,它会直接触发错误。我做了USB调试,我得到了错误

Camera Error  "Permission Denial: starting Intent { act=android.media.action.IMAGE_CAPTURE flg=0x3 cmp=com.google.android.GoogleCamera/com.android.camera.CaptureActivity clip={text/uri-list U:file:///storage/emulated/0/Android/data/com.app.cameratest/cache/.Pic.jpg} (has extras) } from ProcessRecord{6fe7446 18933:com.app.cameratest/u0a471} (pid=18933, uid=10471) with revoked permission android.permission.CAMERA"

我用Google搜索并发现在Android 6.0中,默认情况下禁用权限,当尝试访问摄像头时,它会请求权限。我没有得到任何寻求相机对话框的权限。但我获得了位置插件和文件插件的权限提示。

我的Cordova版本是6.0 相机插件版本2.1.0 Cordova android API 23

我尝试将Cordova Android版本降级到5.0,以便将目标版本更改为Android 22。

这是我的代码

var options = {
            quality: 75,
            destinationType: Camera.DestinationType.FILE_URI,
            sourceType: 1,
            allowEdit: false,
            encodingType: 0,
            targetWidth: 380,
            targetHeight: 450,
            popoverOptions: CameraPopoverOptions,
            direction: 1,
            saveToPhotoAlbum: true
        };
 $cordovaCamera.getPicture(options).then(function(imageData) {
   console.log('image data': imageData);
},function(error) {
    console.error('Camera Error ', JSON.stringify(error));
 });

我尝试将插件更新为2.1.1;还是行不通。如果有人有任何解决方案,请分享。我不知道为什么这个插件没有请求许可提示。

如果我们在设置菜单中手动启用相机权限,则相机正在工作。我不想在我的应用程序中断用户流程。

2 个答案:

答案 0 :(得分:2)

谢谢你们。问题是固定的。问题出在我的cordova版本上。我使用的是cordova 6.0.0。现在我将cordova版本更新为最新版本(6.1.1)。现在要求获得许可。感谢您的支持。

答案 1 :(得分:0)

如果另一个人因此而歪曲头脑, 只有这对我有用:

仅将此标记添加到配置中。 < preference name =“android-targetSdkVersion”value =“22”>