0

Что я пытаюсь сделать:«Ошибка, не удалось загрузить медиа» при попытке вызова фото приложение Намерение растениеводство отправки Ури, который указывает на файлы Dir

Выберите фотографию из моих фотографий на Facebook, а затем отправить что фотография в нативной опыт редактирования фотографий (приложение фотографий)

Вот шаги, которые я везу:

  1. Получить URL для фото из фба
  2. Использование Picasso для извлечения URL изображения в Bitmap
  3. магазина, что растровое изображение в файл на диске в моем приложении конкретном/данные/данные/реж
  4. Создать Ури из этого файла пути
  5. Отправить, что Ури как данные часть неявного намерения для действия «com.android.camera.action.CROP»

Я предполагаю, что проблема в том, что приложение «Фотографии» не имеет разрешения на доступ к файлу в моем/data/data dir, но мне любопытно, может ли кто-нибудь подтвердить, что это действительно проблема, и если да, то как вы ее решили. Я предполагаю, что решение состоит в том, чтобы сохранить файл на SD-карту вместо этого, чтобы приложение Photos могло получить к нему доступ?

Хорошо, вот какой-то код ...

После того как я написал Bitmap в файл, я называю это, чтобы получить Uri

Uri pictureUri = Uri.fromFile(new File(path)) 

я затем отправить, что Ури на урожай намерение, как так

Intent intent = new Intent("com.android.camera.action.CROP"); 
     intent.setDataAndType(pictureUri, "image/*"); 

И начать активность для результата

activity.startActivityForResult(intent, RequestCode.CROP_IMAGE); 

Любая обратная связь очень ценится!

ответ

1

Вы правы, что обмен файлами часто приводит к проблемам разрешения, особенно с READ_EXTERNAL_STORAGE опасное разрешение на Android 6.0+ выше устройств (требуя от вас

Вместо этого, вы должны следовать sharing files training и использовать FileProvider создать Uri, что другие приложения могут читать без разрешения на доступ (с вашей стороны или на стороне другого приложения).

+0

Спасибо! FileProvider работал. У меня возникли проблемы с получением полезной информации обратно в onActivityResult(). с результатом 0 по какой-то причине. –