我在这里找到了多个与此相关的线程,但是没有一个对我有用。这是我的代码:
public void sendSMS (String number, String body) {
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("smsto:" + number));
i.putExtra("abc", body);
startActivity(i);
}
它会打开库存短信应用程序并传递要发送的号码,但文本为空。
我也尝试过此Uri.fromParts(body, number, null)
,但随后应用崩溃了。
答案 0 :(得分:3)
用下面的代码替换您的代码。您没有传递正确的密钥来检测短信的数字和文本正文。
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("sms:" + phoneNumber));
intent.putExtra("sms_body", message);
startActivity(intent);
请阅读此文档以获取详细信息。 Compose an SMS/MMS message with attachment
答案 1 :(得分:1)
尝试一下
Intent smsIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("sms:" + phoneNumber));
smsIntent.putExtra("address", "12125551212");
smsIntent.putExtra("sms_body","Body of Message");
startActivity(smsIntent);
答案 2 :(得分:1)
如果您想确保仅通过短信应用程序(而不是其他电子邮件或社交应用程序)处理您的意图,请使用ACTION_SENDTO
操作并包括“ smsto:
”数据方案。例如:
public void composeMmsMessage(String message, Uri attachment) {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setData(Uri.parse("smsto:")); // This ensures only SMS apps respond
intent.putExtra("sms_body", message);
intent.putExtra(Intent.EXTRA_STREAM, attachment);
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
}
}