Intereting Posts

Проблемы с совместным текстом и изображением с SHARE INTENT на Twitter

Я хочу дать пользователю возможность поделиться изображением и текстом с Twitter и Facebook.

На самом деле мой код может запускать намерение пользователя Android, и если пользователь выбирает Facebook, все работает нормально, изображение прилагается и текст отображается в теле нового статуса.

Но что-то не так с Twitter, если я только поставил изображение, все работает нормально, изображение обнаруживается с помощью Twitter и автоматически загружается в twipic, а затем твиттер помещает ссылку на изображение на твит. Но если я помещаю изображение и текст, то твиттер не обнаруживает изображение, и он только помещает текст в твит, изображение игнорируется. Что не так?

Это мой код:

Intent sharingIntent = new Intent(Intent.ACTION_SEND); Uri screenshotUri = Uri.parse("file:///sdcard/image.jpg"); sharingIntent.setType("image/*"); sharingIntent.putExtra(Intent.EXTRA_TEXT, "Body text of the new status"); sharingIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri); startActivity(Intent.createChooser(sharingIntent, "Share image using")); 

Solutions Collecting From Web of "Проблемы с совместным текстом и изображением с SHARE INTENT на Twitter"

Укажите тип MIME также для текста. "text/plain" – это тип текстовых данных MIME. Попробуйте использовать "*/*" качестве MIME, чтобы вы могли отправить любой общий тип данных.

Также попробуйте изменить ACTION_SEND на ACTION_SEND_MULTIPLE который специализируется на доставке нескольких данных.

Дополнительная информация о ACTION_SEND_MULTPLE и обработке типов MIME:

http://developer.android.com/reference/android/content/Intent.html

Вы все еще можете попробовать с ACTION_SEND , не используя ACTION_SEND_MULTIPLE .

ACTION_SEND_MULTIPLE привел к силе закрытия, когда я попытался создать новые намерения для совместного использования Gmail, G + и т. Д.

Это сработало идеально для меня:

  Intent shareIntent = new Intent(Intent.ACTION_SEND); Uri uri = Uri.parse("file:///sdcard/image.jpg"); shareIntent.setType("*/*"); shareIntent.putExtra(Intent.EXTRA_TEXT, "Body text of the new status"); shareIntent.putExtra(Intent.EXTRA_STREAM, uri); return shareIntent;