Я пытаюсь открыть файл .png, расположенный в каталоге / data моего приложения, через ContentProvider, но вместо того, чтобы обращаться к запросу openFile
method
звонят. Теперь у меня есть только одно изображение, которое мне нужно предоставить для публикации в других приложениях, как я могу настроить свое намерение на goto openFile
вместо запроса
?
Intent shareImageIntent = new Intent(Intent.ACTION_SEND);
shareImageIntent.setType("image/*");
shareImageIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
startActivity(Intent.createChooser(shareImageIntent, "Share image"));
Где Uri выглядит как
content://my.package.contentprovider/fileName
Или мне нужно создать для этого базу данных и вернуть курсор?
ОБНОВЛЕНИЕ
Таким образом, похоже, что это работает со всем, кроме приложения SMS (что я решил сначала протестировать) Однако я хотел бы поддержать совместное использование.
Вот соответствующая трассировка стека:
Вызвано: java.lang.IllegalArgumentException: Запрос на content: //mypackage.myprovider/someImage.png возвращает нулевой результат. в com.android.mms.ui.UriImage.initFromContentUri (UriImage.java:104) в com.android.mms.ui.UriImage. (UriImage.java:63) в com.android.mms.model.ImageModel.initModelFromUri (ImageModel.java:83) в com.android.mms.model.ImageModel. (ImageModel.java:65) в com.android.mms.data.WorkingMessage.changeMedia (WorkingMessage.java:481) в com.android.mms.data.WorkingMessage.setAttachment (WorkingMessage.java:375) ...
Итак, приложение для SMS выполняет запрос, а не читает напрямую из openFile
, что, похоже, выполняет все остальные приложения на моем телефоне (включая другие приложения Google)
Кто-нибудь знает, что Мне нужно вернуться сюда, чтобы правильно заполнить запрос? Я собираюсь покопаться в AOSP.