0

2.3.3 アプリケーションで以下を作成しました (これは単なるコード スニペットです)。

      else if(intentName.contains("Email"))
        {
            System.out.println();
            System.out.println("Button["+ i + "] intent name contains : EMAIL");
            System.out.println("Button["+ i + "] intent EMAIL contains: " + parameter);

            send_email = new Intent(Intent.ACTION_SEND);
            send_email.setType("message/rfc822");
            send_email.putExtra(Intent.EXTRA_EMAIL, parameter);
            send_email.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
            send_email.putExtra(Intent.EXTRA_SUBJECT, "");
            send_email.putExtra(Intent.EXTRA_TEXT,"");

            onClick[i] = new OnClickListener()
            {
            public void onClick(View arg0)
            {
                try
                {
                    con.startActivity(send_email);
                }
                catch(ActivityNotFoundException ex)
                {
                    Toast.makeText(con,  "No Email Clients Installed", Toast.LENGTH_LONG).show();
                }
            }};
        }

これをエミュレーターで実行すると、「No Email Clients Installed」というトースト メッセージが表示されます。これは、エミュレーターに電子メール クライアントがないため、まったく問題ありません。ただし、電話にはデフォルトのメールクライアントと gmail があるため、デバイスでは正常に動作します。

ただし、私はAndroid 2.3.3+向けに開発しているため
、Android 2.3.3を搭載したすべてのAndroidデバイスを実行してください。デフォルトのメールクライアントをお持ちですか? そうであれば、現在の機能を維持でき、独自のクライアントを作成する必要はありません。

それは私の最初の質問でしたが、エミュレーターを調べた後、次のように質問するつもりでした:

2.3.3 SDK を搭載したすべての Android デバイスには、電子メール クライアント オプションの設定がありますか?

お手伝いありがとう!

4

1 に答える 1

2

特定の Android ビルドを実行しているすべてのデバイスにメール クライアントがあることを保証する方法はまったくありません。これはオープン ソース ビルド (電子メール アプリ) の一部ですが、誰かがそれをカスタマイズしてそのアプリを削除していないというわけではありません。そこにあると想定するのはおそらく安全ですが、実際にすべきことは、正常に失敗し、ユーザーにエラーを表示して、アプリにメールアプリが必要であることを示すか (必要な場合)、メールアプリがないためこの機能が無効になっていることを示すことです。現在。別のオプションは、市場からアプリをダウンロードするためのリンクなどを提供することです。

補足: エミュレーターには実際に電子メール アプリがありますが、message/rfc822インテントを処理するように構成されていない可能性があります。

于 2012-10-01T16:11:39.067 に答える