【问题标题】:How to open default sms app in Lollipop andorid如何在 Lollipop android 中打开默认短信应用
【发布时间】:2015-08-10 01:42:31
【问题描述】:

当用户单击按钮时,默认短信应用程序应打开,并且我还提供了我正在向其发送号码但无法执行此操作的消息,下面是我现在正在使用的代码。

private void sendSMS(String _Mobile_Number) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) // At least KitKat
    {
        String defaultSmsPackageName = Telephony.Sms.getDefaultSmsPackage(context); // Need to change the build to API 19

        Intent sendIntent = new Intent(Intent.ACTION_SEND);
        sendIntent.setType("text/plain");
        sendIntent.putExtra(Intent.EXTRA_TEXT, "text to send");
     //   sendIntent.setData(Uri.parse("sms:" + _Mobile_Number));
        if (defaultSmsPackageName != null)// Can be null in case that there is no default, then the user would be able to choose
        // any app that support this intent.
        {
            sendIntent.setPackage(defaultSmsPackageName);
        }
        context.startActivity(sendIntent);

    } else // For early versions, do what worked for you before.
    {
        Intent smsIntent = new Intent(android.content.Intent.ACTION_VIEW);
        smsIntent.setType("vnd.android-dir/mms-sms");
        smsIntent.putExtra("address", _Mobile_Number);
        smsIntent.putExtra("sms_body", "");
        context.startActivity(smsIntent);
    }
}

当我使用下面的行时,它给了我例外。

sendIntent.setData(Uri.parse("sms:" + _Mobile_Number));

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.SEND dat=sms:xxxxxxxxxxxx flg=0x1 pkg=com.google.android.talk (has clip) (has extras) }

如果我不使用该行,那么我的默认应用程序会打开,但它会显示联系人列表。当我在文本中选择一个联系人时,我会看到我写的“要发送的文本”的文本。但我不想要这个

我想要的是当我单击按钮时打开我的默认应用程序,并且在联系人文本框中我提供的号码应该在那里。

【问题讨论】:

    标签: android sms android-5.0-lollipop


    【解决方案1】:

    试试这个版本

    Uri smsUri = Uri.parse("tel:123456");
    Intent intent = new Intent(Intent.ACTION_VIEW, smsUri);
    intent.putExtra("sms_body", "sms text");
    intent.setType("vnd.android-dir/mms-sms");
    startActivity(Intent.createChooser(intent, "Send sms via:"));
    

    【讨论】:

    • 它显示发送短信的方式:仅在白色矩形背景中
    【解决方案2】:
     String defaultSmsPackageName = Telephony.Sms.getDefaultSmsPackage(context);
     Uri _uri = Uri.parse("tel:" + _Mobile_Number);
     Intent sendIntent = new Intent(Intent.ACTION_VIEW, _uri);
     sendIntent.putExtra("address",_Mobile_Number);
     sendIntent.putExtra("sms_body", "text to send");
     sendIntent.setPackage(defaultSmsPackageName);
     sendIntent.setType("vnd.android-dir/mms-sms");
     startActivity(sendIntent);
    

    【讨论】:

    • 没有帮助:(。它给了我异常 android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.SEND dat=sms:xxxxxxxxxxxx flg=0x1 pkg= com.google.android.talk(有剪辑)(有附加)}
    • 你用棒棒糖试过了吗?不过它对我来说对 kitkat 有效
    • 我已经在 kitkat 上试过了,它可以工作,但对 lolypop 有任何想法吗?
    • 还没试过棒棒糖。我的笔记本电脑现在没有心情配合我在 Android Studio 上工作:P 明天在办公室试试。对不起。
    • 我害怕。它在棒棒糖上对我有用。我昨天自己试过了。我只是交叉检查了它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-10
    • 1970-01-01
    • 2010-11-27
    • 1970-01-01
    • 2016-07-03
    相关资源
    最近更新 更多