1

メールを開始したいAndroidアプリがあります。次のコードは、API レベル 5 エミュレーターでは機能しますが、レベル 2 エミュレーターまたはデバイスでは機能しません。

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Email from MyApp");
emailIntent.setType("text/plain");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,
   "This email was autogenerated by MyApp.");
try {
    startActivity(emailIntent);
} catch (Exception e) {
    Log.e(TAG,e.getMessage());
    showDialog(DIALOG_CANTSENDMAIL);
}

スローされた例外は次のように述べています。

No Activity found to handle Intent { action=android.intent.action.SEND (has extras) }

テストされたすべてのデバイス (エミュレートされたものと実際のもの) から手動で電子メールを送信できます。これはレベル 5 API で機能します。Intent.ACTION_SEND のドキュメントによると、API レベル 1 からアクティブになっています。

4

1 に答える 1

2

違いはAPIではなく、システムで利用できるアプリにあると思います。特にメール アプリは Android 1.1 と 1.5 ではかなり制限されていたので、ACTION_SEND を処理できなくても不思議ではありません。

また、Gmail アプリが構成されている場合でも同じアクションが機能する可能性がありますが、(エミュレーターのように) メール アプリのみでは機能しません。

于 2009-12-18T23:58:46.507 に答える