Вопрос по image, android – Попытка предоставить изображение для приложений, вызывающих GET_CONTET намерение

3

Я давно ищу решение и все больше и больше расстраиваюсь.

Я хочу, чтобы мое приложение могло предоставлять контент для других приложений. Например: при использовании приложения 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

Ваш Ответ

1   ответ
1

вам потребуется реализовать потоковый провайдер. Там действительно нет хорошего руководства, ноэт - это самое близкое, что я мог найти.

Похожие вопросы