0

ボタンを2つ設置しました。1 つは SMS の作成インテントを開き、もう 1 つは電子メールの作成インテントを開きます。SMS インテントは正常に機能しますが、メール ボタンが反応しません。カテゴリ チューザーを作成しましたが、表示されません....SMS ボタンをクリックするまで

これは私のコードです

case R.id.button2:
    {
        String phoneNumber = "xxxxxxxxxx";``
        Intent smsIntent = new Intent(Intent.ACTION_SENDTO);
        smsIntent.addCategory(Intent.CATEGORY_DEFAULT);
        smsIntent.setType("vnd.android -dir/mms-sms");
        smsIntent.setData(Uri.parse("sms:"+phoneNumber));
        startActivity(smsIntent);


    }
    case R.id.button3:
    {
        Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
        emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"xxxxxxxx@gmail.com"});
        emailIntent.setType("plain/text");
        startActivity(Intent.createChooser(emailIntent, "Send email..."));

    }

何か案は?

4

4 に答える 4

5

break;casexxx {}の後に置くようにしてください

于 2012-05-17T10:30:48.163 に答える
0

デザイン(xmlファイル)のボタンのIDを確認してください。

于 2013-02-01T19:33:24.553 に答える
0

メール インテントは、メール クライアントがインストールされている実際のデバイスで使用する場合にのみ使用できます。エミュレータに問題があると思います。そこで機能させるには、このインテントをサポートするクライアントをインストールする必要があります。次のようなエラーが表示されると思います。

android.content.ActivityNotFoundException: No Activity found to handle Intent 
于 2013-02-01T12:38:07.780 に答える
0

一般的なインテントのデベロッパー ガイドでは、インテントに応答するアクティビティを持つアプリがない場合、例外がスローされるケースについて警告しています。

注意: 暗黙的インテントを受け取ることができるアプリがデバイス上にない場合、startActivity() を呼び出すとアプリがクラッシュします。インテントを受け取るアプリが存在することを最初に確認するには、 Intent オブジェクトで resolveActivity() を呼び出します。結果が null 以外の場合、インテントを処理できるアプリが少なくとも 1 つあり、startActivity() を安全に呼び出すことができます。結果が null の場合は、インテントを使用しないでください。可能であれば、インテントを呼び出す機能を無効にする必要があります。

例えば:

private void sendEmail(String address) {
    Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"xxxxxxxx@gmail.com"});
    emailIntent.setType("plain/text");
    if (emailIntent.resolveActivity(getPackageManager()) != null) {
        startActivity(Intent.createChooser(emailIntent, "Send email..."));
    } else {
        // TODO: Tell your user about it
    }
}

onCreate()または、ボタンを完全に非表示にするためにチェックを行うこともできます。

于 2015-04-30T08:40:03.447 に答える