画像とテキストをTwitterやFacebookで共有できるようにしたいと考えています。
実際、私のコードはAndroidの共有インテントを起動でき、ユーザーがFacebookを選択すると、すべて正常に機能し、画像が添付され、テキストが新しいステータスの本文に表示されます。
しかし、Twitterのどこかに問題があります。画像を配置しただけで問題がなければ、画像はTwitterによって検出され、自動的にtwipicにアップロードされます。その後、Twitterが画像のリンクをツイートに投稿します。しかし、画像とテキストを配置すると、Twitterは画像を検出せず、ツイートにテキストを配置するだけで、画像は無視されます。なにが問題ですか?
これは私のコードです:
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"));
テキストにも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;