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