Android Share Via Dialog

Я видел диалоги "share via", которые находятся в таких приложениях, как TFLN (тексты прошлой ночи). Похож на это: общий диалог http://garr.me/wp-content/uploads/2009/12/sharevia.jpg

Я хочу поделиться текстом. Может ли кто-нибудь указать мне в правильном направлении? Это сделано с намерениями?

Ответ 1

Это действительно сделано с помощью намерений.

Для совместного использования изображения, например, в примере, это будет примерно так:

Intent share = new Intent(Intent.ACTION_SEND);
share.setType("image/jpeg");

share.putExtra(Intent.EXTRA_STREAM,
  Uri.parse("file:///sdcard/DCIM/Camera/myPic.jpg"));

startActivity(Intent.createChooser(share, "Share Image"));

Для текста вы должны использовать что-то вроде:

Intent share = new Intent(Intent.ACTION_SEND);
share.setType("text/plain");
share.putExtra(Intent.EXTRA_TEXT, "I'm being sent!!");
startActivity(Intent.createChooser(share, "Share Text"));

Ответ 2

У меня возникли проблемы с принятым ответом. Что сработало для меня, так это создание файла с пути, а затем анализ URI файла, например:

Uri.fromFile(new File(filePath));

вместо

Uri.parse(filePath)

На всякий случай у кого-то такая же проблема.

Ответ 3

Да. Вам нужно предоставить Activity с фильтром намерения, который может обрабатывать объекты типа MIME image/jpeg (скажем, если вы хотите поддерживать совместное использование изображений JPEG) и действия предположительно ACTION_SEND.

Многие из встроенных приложений для Android являются open-source, вы можете проверить файл манифеста приложения Messaging, чтобы узнать, какие фильтры намерений он использует.