Совместное использование изображения в каталоге данных приложения через ContentProvider на Android

Я пытаюсь открыть файл .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.

5
задан smith324 24 August 2011 в 16:05
поделиться