使用intent发送短信后返回我的应用程序

时间:2017-12-07 11:35:47

标签: android android-intent sms

我一直在寻找这个,找到了很多线程来指定这个。但事情对我不起作用。试过设置" exit_on_sent"并尝试使用startAcitivityForResult。这是我正在尝试的代码片段

Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.setData(Uri.parse("smsto:" + phoneNumbers)); // phoneNumbers is a list of phone numbers to which i need to send messages at the same time
sendIntent.putExtra("sms_body", context.getResources().getString(R.string.message_body));
sendIntent.putExtra("exit_on_sent", true);
context.startActivity(sendIntent);

2 个答案:

答案 0 :(得分:3)

  

我的要求是在发送消息后返回我的应用程序。

当您使用data.frameACTION_SENDTO或其他ACTION_VIEW操作时,您正在启动第三方应用以执行某些操作。在这种情况下,您将启动第三方应用程序以发送SMS消息。

有大约20亿台Android设备在使用,分布在~10,000台设备型号中。这些设备型号中将有数十个(如果不是数百个)不同的预安装SMS客户端。我们也欢迎用户从Play商店或其他应用程序分销渠道安装其他SMS客户端。

当您的应用启动数百个短信客户端中的一个时会发生什么取决于那些短信客户端的开发者,而不是

如果您想要控制整个用户体验,请使用Intent作为Ankit pointed out自行发送短信。如果您想使用用户首选的SMS客户端,请坚持使用SmsManager,但此时发生的事情取决于SMS客户端开发人员和用户,而不是您。

答案 1 :(得分:1)

您可以使用SMSManager静默发送短信。如下:

       try {

            String ph="1234568790";
            String msg="Hello";

            SmsManager smsManager = SmsManager.getDefault();
            smsManager.sendTextMessage(ph, null,msg, null, null);
            Toast.makeText(MainActivity.this, "Message Sent",
                    Toast.LENGTH_LONG).show();
        }
        catch (Exception e)
        {
            Toast.makeText(MainActivity.this, "Message not Sent",
                    Toast.LENGTH_LONG).show();
        }