メーラーを起動する暗黙的Intentについて

2,585 views
Skip to first unread message

ado

unread,
Jul 29, 2009, 1:56:15 PM7/29/09
to 日本Androidの会
毛利@SCUDERIA-Aです。

暗黙的Intentを利用してメーラーを起動したいときはACTIONとDATAは何をセットしたらよいのでしょうか?

ダイアラーなら以下で動作できているのですが、メーラーの場合サンプルが見つけられませんでした・・・
Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse
("tel:XXXXXXXX"));
startActivity(intent);

ちなみにこのような感じでテストしてみたところ、実行時にエラーが発生しました。
Intent it = new Intent(Intent.ACTION_SEND);
it.putExtra(Intent.EXTRA_EMAIL, "m...@abc.com");
it.putExtra(Intent.EXTRA_SUBJECT, "title");
it.putExtra(Intent.EXTRA_TEXT, "body");
startActivity(it);

egg

unread,
Jul 29, 2009, 4:58:24 PM7/29/09
to android-g...@googlegroups.com
毛利さん

江川と申します。
mailto:
で出来ると思います。

------------------------------------------
EGAWA Takashi



2009/07/30 2:56 に ado<mob...@scuderia-a.com> さんは書きました:

KORO

unread,
Jul 29, 2009, 10:49:32 PM7/29/09
to 日本Androidの会
毛利さん

KOROと申します。

別の方法で、
Intent.EXTRA_EMAILに設定するデータをString配列にすることでも
できるのではと思います。
it.putExtra(Intent.EXTRA_EMAIL, new String[] {mailaddress});
# 自分のアプリでも同様の機能を実装したことがあるので。

・参考リンク
http://developer.android.com/reference/android/content/Intent.html#EXTRA_EMAIL

以上です。


> > ちなみにこのような感じでテストしてみたところ、実行時にエラーが発生しました。
> > Intent it = new Intent(Intent.ACTION_SEND);
> > it.putExtra(Intent.EXTRA_EMAIL, "m...@abc.com");
> > it.putExtra(Intent.EXTRA_SUBJECT, "title");
> > it.putExtra(Intent.EXTRA_TEXT, "body");
> > startActivity(it);- 引用テキストを表示しない -

ado

unread,
Jul 30, 2009, 5:41:07 AM7/30/09
to 日本Androidの会
毛利です。

江川さん以下のように書いてみましたが、実行時にエラーが発生しました。
Intent it = new Intent(Intent.ACTION_SEND,Uri.parse
("mailto:ho...@hoge.com"));
startActivity(it);

KOROさんこのように変更してみましたが、やはり実行時にエラーが発生しました。
it.putExtra(Intent.EXTRA_EMAIL, new String[] {"ho...@hohge.com"});


江川さん、KOROさん
ひょっとしてパーミッションを何か追加しないといけないのでしょうか?

Keiji Ariyama

unread,
Jul 30, 2009, 6:14:23 AM7/30/09
to android-g...@googlegroups.com
有山@大阪です。

> 江川さん以下のように書いてみましたが、実行時にエラーが発生しました。
> KOROさんこのように変更してみましたが、やはり実行時にエラーが発生しました。
 具体的にどんなエラーが発生してますか?


/*********************************************
有限会社シーリス
代表 有山 圭二
@Address
〒530-0044
大阪市北区東天満二丁目2番5号
第2新興ビル 601
@Web http://www.c-lis.co.jp
*********************************************/

ado

unread,
Jul 30, 2009, 10:29:45 AM7/30/09
to 日本Androidの会
江川さん
KOROさん
有山さん

解決しました。
Intent.ACTION_SENDではなくIntent.ACTION_SENDTOに変更したところメーラーを選択する画面が表示され、
選択後に正常にメール送信ができました。

>有山さん
ちにみにエラーですが、いかが表示されるエラーダイアログが立ち上がってました。
「The applivation ... has stoped unexpectedly. Please try again」
また、ddmsでは抜粋ですが実行時に以下が表示されていました。
07-30 14:27:12.691: ERROR/AndroidRuntime(801): Uncaught handler:
thread main exiting due to uncaught exception
07-30 14:27:12.701: ERROR/AndroidRuntime(801):
android.content.ActivityNotFoundException: No Activity found to handle
Intent { action=android.intent.action.SEND data=mailto:ho...@hoge.com
(has extras) }

みなさま色々とありがとうございました。


毛利

Keiji Ariyama

unread,
Jul 30, 2009, 10:47:08 AM7/30/09
to android-g...@googlegroups.com
毛利さん

 有山@大阪です。問題の解決おめでとうございます。

> 07-30 14:27:12.701: ERROR/AndroidRuntime(801):
> android.content.ActivityNotFoundException: No Activity found to handle
> Intent { action=android.intent.action.SEND data=mailto:ho...@hoge.com
> (has extras) }
 アクション"android.intent.action.SEND"に該当するActivityが無いと言う
エラーですね。

 ちなみに、EmailアプリのAndroidManifest.xmlを見ると、以下のようになって
います。

> <activity
> android:name=".activity.MessageCompose"
> android:label="@string/app_name"
> >
> <intent-filter>
> <action android:name="android.intent.action.VIEW" />
> <action android:name="android.intent.action.SENDTO" />
> <data android:scheme="mailto" />
> <category android:name="android.intent.category.DEFAULT" />
> <category android:name="android.intent.category.BROWSABLE" />
> </intent-filter>
> <intent-filter android:label="@string/app_name">
> <action android:name="android.intent.action.SEND" />
> <data android:mimeType="text/plain" />
> <data android:mimeType="image/*" />
> <data android:mimeType="video/*" />
> <category android:name="android.intent.category.DEFAULT" />
> </intent-filter>
> </activity>

 なので、android.intent.action.SENDには対応しているはずなんですが。。。
 Categoryを設定しないと駄目とか?

/*********************************************
有限会社シーリス
代表 有山 圭二
@Address
〒530-0044
大阪市北区東天満二丁目2番5号
第2新興ビル 601
@Web http://www.c-lis.co.jp
*********************************************/


ado wrote:
Reply all
Reply to author
Forward
0 new messages