我正在使用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;还是行不通。如果有人有任何解决方案,请分享。我不知道为什么这个插件没有请求许可提示。
如果我们在设置菜单中手动启用相机权限,则相机正在工作。我不想在我的应用程序中断用户流程。
答案 0 :(得分:2)
谢谢你们。问题是固定的。问题出在我的cordova版本上。我使用的是cordova 6.0.0。现在我将cordova版本更新为最新版本(6.1.1)。现在要求获得许可。感谢您的支持。
答案 1 :(得分:0)
如果另一个人因此而歪曲头脑, 只有这对我有用:
仅将此标记添加到配置中。 < preference name =“android-targetSdkVersion”value =“22”>