Я пытаюсь передать изображение, которое я ранее сохранил на диске, отправив Intent.ACTION_SEND
. Проблема в том, что я не могу найти способ быть совместимым с различными приложениями, официальным приложением Gmail и TweetDeck в моем случае.
Изображение, которое я хочу предоставить, содержится в File
:
File agendaFile;
// its path using getAbsolutePath() -> /data/data/com.mypackage/files/agenda.jpg
Вариант A) с использованием Uri.fromFile
Uri agendaUri = Uri.fromFile(agendaFile);
// the value -> file:///data/data/com.mypackage/files/agenda.jpg
Результаты
- Gmail, изображение, прикрепленное к письму? НЕТ
- Tweetdeck, изображение добавлено в сообщение твита? Да
Вариант B) с использованием Uri.parse
Uri agendaUri = Uri.parse(agendaFile.toURI().toString());
// the value -> file:/data/data/com.mypackage/files/agenda.jpg
Результаты
- Gmail, изображение, прикрепленное к письму? Да
- Tweetdeck, изображение добавлено в сообщение твита? НЕТ
Наконец
В обоих случаях я отправляю намерение следующим образом:
final Intent intent = new Intent(android.content.Intent.ACTION_SEND);
intent.setType("image/jpg");
intent.putExtra(android.content.Intent.EXTRA_STREAM, agendaUri);
startActivity(Intent.createChooser(intent, "title"));
Итак, есть ли другие варианты совместного использования изображения? Как лучше всего использовать изображение, совместимое с большинством приложений?
Спасибо!