android 6.0 中的 Cordova 相机插件权限拒绝

Cordova camera plugin permission denial in android 6.0

我正在使用 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了一下,发现在android6.0中,默认情况下权限是关闭的,当试图访问相机时,它会请求权限。我没有获得任何许可寻求相机对话框。但是我得到了位置插件和文件插件的权限提示。

我的Cordova版本是6.0 相机插件版本 2.1.0 科尔多瓦 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;还是行不通。如果有人对此有任何解决方案,请分享。我不知道为什么这个插件不要求权限提示。

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

谢谢你们。问题已解决。问题出在我的科尔多瓦版本上。我正在使用 cordova 6.0.0 。现在我将 cordova 版本更新到最新版本 (6.1.1)。现在它正在请求许可。感谢您的支持。

如果另一个人为此伤脑筋, 只有这个对我有用:

只有将此标记添加到配置中。 <首选项名称="android-targetSdkVersion" 值="22" >