发送短信的意图

时间:2018-10-08 06:30:13

标签: android

这将是一个新手问题,但我很好奇Intent的ACTION_SENDTO的工作方式。代码是这样的:

TextView textView = (TextView) findViewById(R.id.number_to_call);
String smsNumber = String.format("smsto: %s", textView.getText().toString());
EditText smsEditText = (EditText) findViewById(R.id.sms_message);
String sms = smsEditText.getText().toString();    
Intent smsIntent = new Intent(Intent.ACTION_SENDTO);
smsIntent.setData(Uri.parse(smsNumber));
smsIntent.putExtra("sms_body", sms);

我了解:

  • 这是一个隐含的意图
  • ACTION_SENDTO是意图的动作
  • setData接收意图数据

但是putExtra中的任何内容,我想它所做的就是放入“额外”数据中吗?运行此意图后,立即将我带到一个普通的Messages应用程序,其编号为smsNumber,短信为内容。我的问题是:

  1. 意图“知道” smsNumber应该在电话号码部分中,而sms在内容部分中怎么办?
  2. 我还猜想名称“ sms_body”是否会影响数据后的角色(aka sms是消息的内容)?

编辑:我找到了对此的解释。它应该在Common Intents

1 个答案:

答案 0 :(得分:0)

您可以在uri中使用“ smsto:XXXXXXXXXX”来提供该帖子中的电话号码,例如以下示例: ACTION_SEND used to send sms

Uri uri = Uri.parse("smsto:0800000123");   
Intent it = new Intent(Intent.ACTION_SENDTO, uri);   
it.putExtra("sms_body", "The SMS text");   
startActivity(it);