Преобразование растрового изображения в Uri не работает - PullRequest
0 голосов
/ 29 ноября 2018

Я использую следующий код для преобразования растрового изображения в Uri

  public static  Uri getImageUri(Context context, Bitmap bitmap) {
    ByteArrayOutputStream bytes = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
    String path = MediaStore.Images.Media.insertImage(context.getContentResolver(), bitmap, "Title", null);
    return Uri.parse(path);
}

Работает нормально на вышеперечисленных устройствах от Marshmellow, но не работает в следующих версиях

MediaStore.Images.Media.insertImage

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

Я использую karbon 5.1 (API 22)

1 Ответ

0 голосов
/ 29 ноября 2018

MediaStore.Images.Media.insertImage фактически обращается к внешнему хранилищу, чтобы сохранить изображение.Некоторые важные напоминания, которые могут вызывать сбой вашего приложения:

  1. Подключение USB заблокирует использование SD-карты в режиме Mass Storage.
  2. Могут быть и другие факторы, которые могут привести кSD-карта недоступна, поэтому сначала убедитесь, что вы можете получить доступ к SD-карте с помощью файлового браузера.
  3. Убедитесь, что ваши разрешения правильно настроены с android.permission.WRITE_EXTERNAL_STORAGE и android.permission.READ_EXTERNAL_STORAGE
...