Камера Cordova сохраняет в галерее даже на ложном

Я в очень неприятной ситуации...

Мой клиент хочет использовать приложение Кордовы в Ionic Framework v1, и необходимо, чтобы камера не сохраняла изображения в галерее. Однако, когда я устанавливаю параметр для сохранения в галерею на значение false, он по-прежнему сохраняет в галерее.

Проблема возникает на Android, когда вы делаете снимок и отменяете его. Затем он сохраняет эту картину в галерее, а иногда даже сохраняет все остальные фотографии после этого.

Я действительно приветствовал бы любую помощь; Все, что я нашел до сих пор, - это некоторые решения, которые мне очень трудно понять, поскольку мои знания Java равны нулю.

Вот мой код JS

function capturePhoto() {
    var maxDimension = 1280;
    var options = {
      quality: 80,
      destinationType: Camera.DestinationType.DATA_URL,
      sourceType: Camera.PictureSourceType.CAMERA,
      correctOrientation: true,
      targetWidth: maxDimension,
      targetHeight: maxDimension,
      saveToPhotoAlbum: false

    };

Это для параметров камеры.

 $cordovaCamera.getPicture(options).then(function (imageData) {
      var src = "data:image/jpeg;base64," + imageData;
      $scope.photoPreviewSrc = src;
    }).catch(function (err) {

    });
  }

Ответы

Ответ 1

Я проверил ваш код с помощью кордовы. Он отлично работает, как и ожидалось. Проверяйте приложение на другом устройстве один раз.

Я не проверял его на ионной платформе.

Ответ 2

После получения данных изображения вы можете попробовать запустить что-то вроде следующего:

navigator.camera.cleanup(onSuccess, onFail);

function onSuccess() {
    console.log("Camera cleanup success.")
}

function onFail(message) {
    alert('Failed because: ' + message);
}

Из docs: "camera.cleanup() Удаляет промежуточные файлы изображений, хранящиеся во временном хранилище после вызова camera.getPicture. Применяется только тогда, когда значение Camera.sourceType равно Camera.PictureSourceType.CAMERA, а Camera.destinationType равно Camera.DestinationType.FILE_URI."

Вышеуказанное относится непосредственно к вашему прецеденту.

Ответ 3

Действительно ли это происходит в фотогалерее или просто появляется в приложении для Android-фото? В браузере фотографий по умолчанию Android будут показаны все фотографии, скриншоты и т.д. Также будут отображаться только случайные изображения, которые другие приложения могут иметь в файловой системе, но это не фотографии.

Поскольку в кордове у вас нет большого контроля над ОС, вы можете использовать работу: вы можете поместить изображения в скрытый каталог (начиная с . такой .appdata), и это предотвратит Android автоматически видит изображения из приложения "Галерея". У меня была эта проблема в Ионном приложении и так решила.