twitterに画像を添付する方法について

1,577 views
Skip to first unread message

nora

unread,
Oct 24, 2011, 8:54:24 AM10/24/11
to 日本Androidの会
いつもお世話になっております。現在、私はカメラアプリを開発しております。

開発中に解決できない点がひとつありまして、投稿させていただきました。
カメラアプリで画像を編集後、twitterやmailなどにその画像を添付できるようにしたところ、gmailなどメールには画像を添付することがで
きるのですが、facebookやtwitterには添付できません。原因を解析中ですが、まったくわかりませんでした。
どなたかアドバイスを頂けたらと思います。
よろしくお願いいたします。
問題部分のソースコードは以下となります。

Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_STREAM, Uri.parse(filePath));
startActivity(intent);

Koji Ohno

unread,
Oct 24, 2011, 5:13:26 PM10/24/11
to android-g...@googlegroups.com
こんにちは、大野と申します。

私もカメラアプリをいくつか作っていますが、twitter などにも問題なく投稿できています。

ソースコードをぱっと見て、私のコードと違うところは以下の点です。

> intent.setType("image/*");
のところは私は、PNG形式の画像にして
intent.setType("image/png");
としています。

あとは、画像だけでなく、コメントも以下のようにして付けるようにしています。
intent.putExtra(Intent.EXTRA_TEXT, comment);

コードの違いはこれぐらいです。

その他に原因があるとすると、画像のサイズが制限値を超えている、とか、
形式に問題がある、とかでしょうか。
(制限値があるかどうかわかりませんが。。)


2011年10月24日21:54 nora <naoooo...@gmail.com>:

> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
>
>

nora

unread,
Oct 25, 2011, 12:48:31 AM10/25/11
to 日本Androidの会
大野様。

アドバイスありがとうございます。

intent.setType("image/png");
intent.putExtra(Intent.EXTRA_TEXT, comment);

のように変更してみましたが、twitterでは写真を読み込むことはできませんでした。
大野様のおっしゃる通り、その他の原因があるかもしれませんのでもう少し原因を解析してみます。
貴重なアドバイス、ありがとうございます

tyuasa

unread,
Oct 25, 2011, 8:47:53 PM10/25/11
to 日本Androidの会
こんにちは。tyuasaと申します。

> intent.putExtra(Intent.EXTRA_STREAM, Uri.parse(filePath));

にて,第2引数をファイルURI(file:///~)にされていますが,
これをContentProviderから取得できるコンテントURI(content://~)に
変えてみてはいかがでしょうか。

インテント起動で画像を添付する場合,ファイルURIでは
所望の動作をしてくれないアプリが多かったように記憶しています。

nora

unread,
Oct 27, 2011, 8:16:02 AM10/27/11
to 日本Androidの会
tyuasa様。
貴重なアドバイスありがとうございます。

tyuasa様がおっしゃられた通り

intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("content://media/
external/images/media/"+1));

のように記述すれば画像を添付することができました。
ただこの方法だとsdcardフォルダから画像を取得してしまいますが、独自に作成したフォルダ(私が作ったアプリで画像を保存したときに、独自のフォ
ルダを生成します)からは画像を取得できるのでしょうか?

よろしくお願いいたします。

tyuasa

unread,
Oct 27, 2011, 10:48:25 PM10/27/11
to 日本Androidの会
nora 様

tyuasa です。

アプリで生成した独自フォルダ内の画像でも問題ありません。

内部ストレージ(/data 以下)でも,あるいは sdcard 以下の
フォルダツリー内のどこでも OK です。

# 内部ストレージの場合は URI が "external" ではなく "internal" になります。

なお,私は内部ストレージのアプリ領域に保存した画像を共有等には
利用したことがないのですが,内部ストレージの場合は対象ファイルの
read/write モードには気を付けないといけないかもしれません。

よろしくお願いします。
Reply all
Reply to author
Forward
0 new messages