将意图发送到sms app android 4.4及以上版本

时间:2015-04-06 12:13:33

标签: android android-intent

我正在使用此代码在我的应用程序中发送intent默认短信应用

Intent smsIntent = new Intent(Intent.ACTION_VIEW);
        smsIntent.setType("vnd.android-dir/mms-sms");
        smsIntent.putExtra("address", number);
        smsIntent.putExtra("sms_body",message);

        if (smsIntent.resolveActivity(context.getPackageManager()) != null) {
            context.startActivity(smsIntent);
        }

此代码在android 5中打开一个短信应用程序(可能在kitkat中!)但它可能是也可能不是默认的短信应用程序!所以有时当它没有打开默认短信应用程序时我会收到一个错误,因为只有默认应用程序可以发送短信!

我的问题是如何确保只有默认应用处理我的意图?

1 个答案:

答案 0 :(得分:1)

尝试添加此内容 -

smsIntent.addCategory(Intent.CATEGORY_DEFAULT); 

这应确保收件人应用程序是默认应用程序。

或者对KK来说,你可以试试这个 -

SmsManager.getDefault().sendTextMessage("Phone Number", null, "Message", null, null);

N.B:使用此方法要求您的应用具有SEND_SMS权限。

有关详细信息,请参阅sendTextMessage() documentation