Подтвердить что ты не робот

Проблемы с совместным текстом и изображением с 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"));
4b9b3361

Ответ 1

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

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

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

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

Ответ 2

Вы все еще можете попробовать с 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;