Отказ в разрешении на плагин камеры Cordova в 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"
Я гуглил его и обнаружил, что в Android 6.0 разрешения по умолчанию отключены и при попытке доступа к камере он будет запрашивать разрешение. Я не получил никакого разрешения на поиск диалогового окна для камеры. Но я получил разрешение на размещение плагина и файла плагина.
My Cordova версия 6.0 плагин камеры версия 2.1.0 Cordova Android API 23
Я пытался понизить версию Android Cordova до 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; до сих пор не работает. Если у кого-то есть решение для этого, пожалуйста, поделитесь. Я не знаю, почему этот плагин не запрашивает разрешение на приглашение.
Камера работает, если мы вручную включим разрешение камеры в меню настроек. Я не хочу прерывать поток пользователя в моем приложении для этого.