Вопрос по image, android – Попытка предоставить изображение для приложений, вызывающих GET_CONTET намерение
Я давно ищу решение и все больше и больше расстраиваюсь.
Я хочу, чтобы мое приложение могло предоставлять контент для других приложений. Например: при использовании приложения GoogleMail вы можете добавить вложение. Откроется диалоговое окно со всеми приложениями, которые могут предоставить файл для вложения. Мое приложение уже находится в диалоговом окне, потому что я определил действие с помощью фильтра намерений следующим образом:
<code> <intent-filter > <action android:name="android.intent.action.GET_CONTENT" /> <action android:name="android.intent.action.PICK" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.OPENABLE" /> <data android:mimeType="image/*" /> </intent-filter> </code>
Поэтому, когда вы выбираете мое приложение, оно начинает активность. Активность позволяет пользователю выбрать фотографию и записать ее на SD-карту. Все идет нормально. Но как мне вернуть его правильно? Потому что вложение в GoogleMail никогда не производится. Я возвращаю это так:
<code>if(file!=null) { Intent resultIntent=new Intent(); resultIntent.setType("image/jpg"); Uri uri=Uri.fromFile(file); //uri=Uri.parse(uri.toString().replace("file", "content")); resultIntent.putExtra(Intent.EXTRA_STREAM, uri); resultIntent.putExtra(Intent.EXTRA_UID, uri); resultIntent.setData(uri); setResult(RESULT_OK, resultIntent); finish(); } </code>
Я был бы так счастлив, если бы кто-нибудь мог мне помочь. Я считаю, что это простая вещь, которую я делаю неправильно, но я не могу найти ничего, что мне поможет. :(
С наилучшими пожеланиями
resultIntent.putExtra(Intent.EXTRA_STREAM, uri); resultIntent.putExtra(Intent.EXTRA_UID, uri);
У меня не сработало. но даже если я увижу вложение в Gmail, оно не будет отправлено.
philipp
вам потребуется реализовать потоковый провайдер. Там действительно нет хорошего руководства, ноэт - это самое близкое, что я мог найти.