2

我想从我的应用程序中发送短信,为此我编写了下面的代码,这非常简单。但我面临的问题是,发送消息时没有开始活动

发送消息的方法:

private void sendSMS(Context context, String phone, String msg){
    Intent smsIntent = new Intent(Intent.ACTION_VIEW);

    smsIntent.setData(Uri.parse("smsto:"));
    smsIntent.putExtra("address", phone);
    smsIntent.putExtra("sms_body", msg);
    smsIntent.setType("vnd.android-dir/mms-sms");

    try {
        startActivity(smsIntent);
        finish();
    } catch (android.content.ActivityNotFoundException ex) {
        Toast.makeText(context, "SMS faild, please try again later.", Toast.LENGTH_SHORT).show();
    }
}

清单中添加的权限

<uses-permission android:name="android.permission.SEND_SMS" />

它总是显示用 catch() 写的 toast

4

3 回答 3

2

试试这个:

也不需要:

<uses-permission android:name="android.permission.SEND_SMS" />

只需使用以下代码:

Intent sendIntent = new Intent(Intent.ACTION_VIEW);
                sendIntent.setData(Uri.parse("sms:"));
                sendIntent.putExtra("sms_body", "Check out My app for your smartphone. Download it today from https://google.com");
                try {
                    startActivity(sendIntent);
                } catch (ActivityNotFoundException e) {
                    e.printStackTrace();                        
                }
于 2017-01-07T06:06:05.463 回答
1

您正在执行的代码是旧的。这是从您的 APP 发送短信的代码

public void sendSMSFunction(){
     SmsManager smsManager = SmsManager.getDefault();
     String messageContent = "Your Content";
     smsManager.sendTextMessage("Destination_PhoneNumber", null, messageContent, null, null);
}

并将此权限添加到您的清单文件

<uses-permission android:name="android.permission.SEND_SMS"/>

如果您在 Android Marshmallow 及更高版本中执行此操作,则需要询问运行时权限。

于 2017-01-07T06:04:26.030 回答
0

当你烤面包时,总是意味着它进入了 catch()。Catch 正在处理ActivityNotFoundException

如果有帮助,请点击此链接:

https://stackoverflow.com/a/10613004/5722385

如果您正在使用棉花糖及以上版本,请通过以下链接,它有示例如何添加运行时权限

https://stackoverflow.com/a/34969604/5722385

因为发送短信被分组为危险权限,所以你也需要在运行时处理它,只在清单文件中写入权限是不够的。

如果需要,在添加运行时权限之前,您可以从手机启用权限,请按照以下步骤操作。

转到设置->应用程序->选择您的应用程序->权限->启用短信权限。

您还可以检查此链接以获取应在运行时处理的危险权限列表

https://developer.android.com/guide/topics/permissions/requesting.html

于 2017-01-07T05:30:50.940 回答