0

アプリケーションからのメール送信を実装しました。

これを達成するためのガイドとしてSOに関するこの質問を使用しました。意図setType("message/rfc822");をリッスンする他のすべての電子メールクライアントを除外するため、誰かが使用すると言った回答に注意してください。ACTION_SEND

私の問題は、Galaxy Tab 10.1 にインテントをリッスンする 2 つのアプリケーションがまだあるため、使用するメール クライアントを尋ねるポップアップが引き続き表示されることです。(gMail アプリまたはデフォルトの電子メール アプリ)。アンインストールできないので、リストはポップアップしませんが、どちらもしたくありません。

Androidにリストの最初のものを即座に使用させる方法はありますか? ユーザーはポップアップ ダイアログをスキップできますか?

これが私の現在のコードです:

Intent i = new Intent(Intent.ACTION_SEND);
i.setType("message/rfc822");

i.putExtra(Intent.EXTRA_SUBJECT, context.getString(R.string.notes_from_pf));
i.putExtra(Intent.EXTRA_TEXT  , context.getString(R.string.mail_message));
try {
    startActivity(Intent.createChooser(i, "Send mail..."));
} catch (android.content.ActivityNotFoundException ex) {
    Toast.makeText(context, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
}
4

3 に答える 3

1

アプリケーションをクエリし、アクションを送信するために登録されているアプリケーションのリストを取得して 1 つを選択し、インテントを作成し、クラス名を設定してインテントを開始すれば完了です。

于 2012-06-12T11:54:17.330 に答える
0
Intent email = new Intent(Intent.ACTION_SEND);
email.setType("text/plain");
email.putExtra(Intent.EXTRA_EMAIL,  "" );

email.putExtra(Intent.EXTRA_SUBJECT, "");

email.putExtra(Intent.EXTRA_TEXT, prsnname + " :   "+ data  +"\n\n" +  linkdata);


try
{

activity.startActivity(Intent.createChooser(email, "Send mail..."));

}
catch (android.content.ActivityNotFoundException ex) 
{
    Toast.makeText(activity, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
}
于 2012-06-12T12:22:02.133 に答える
0

インテントを処理できるアプリを見つけたい場合は、次を使用できます。

getPackageManager()。queryIntentActivities ...

目的のアプリが見つかったら、アプリのパッケージと一致するようにインテントのパッケージを設定します。

于 2012-06-12T12:10:30.300 に答える