cordova-plugin-camera:在Android 4.4设备上出现“未选择图像”错误

Bru*_*res 6 android cordova ionic-framework cordova-plugins

我正在使用Ionic 1.x构建混合移动应用程序。目前,我正在处理与cordova-plugin-camera运行Android 4.4(KitKat-也在4.3中进行测试)的设备有关的怪异行为。当我运行以下代码时:

var options = {
    quality: 50,
    mediaType: Camera.MediaType.PICTURE,
    destinationType: Camera.DestinationType.FILE_URI,
    sourceType: Camera.PictureSourceType.CAMERA,
    allowEdit: false,
    encodingType: Camera.EncodingType.JPEG,
    saveToPhotoAlbum: false,
    correctOrientation: true
};

navigator.camera.getPicture(function (imageData) {
    console.log(imageData);
}, function (err) {
    console.log(err);
}, options);
Run Code Online (Sandbox Code Playgroud)

错误回调将立即触发,并向控制台输出“未选择图像”。也就是说:在我拍照之前,打开相机应用程序并在打开相机时触发错误回调。

但是,这些相同的代码也可以在具有新Android版本(已在Android 7.0设备上测试)的设备上使用。

我正在使用:

  • 科尔多瓦8.0
  • 科尔多瓦Android 6.4.0
  • 科尔多瓦插件相机4.0.2

尝试过此解决方案,但得到相同的结果。那么,我该如何解决这个问题?我忘记了什么吗?

谢谢您的帮助。

Bru*_*res 6

经过两天的工作以及在StackOverflow上的这篇文章之后30分钟,按照此GitHub注释中描述的步骤解决了该问题:

  1. 将以下行添加到您的config.xml中: <preference name="AndroidLaunchMode" value="singleTop" />
  2. 删除目录 platforms/android/
  3. ionic cordova prepare android

似乎问题是由cordova-plugin-background-mode插件的安装引起的,我也正在使用该插件。