这是我用来调用SMS应用程序的一段代码:
Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse(uri));
intent.putExtra("sms_body", body);
intent.putExtra("compose_mode", true);
launchIntent(intent);
在具有低于Android 3.0的操作系统版本的设备上,上面的代码工作正常,SMS页面打开,要发送的消息和数字预先填充正确,但在Android 3.0及更高版本的设备中,此功能不再适用。
在Android 3.0中调用短信意图并且数字被填充,而不是在Android 4.0中调用短信意图并且文本被填充而不是数字的文本。
有谁知道这个问题的解决方案?
答案 0 :(得分:1)
此代码适用于所有版本的android
String smsBody = Resources.getString("InvitationBody", getBaseContext()) + Local.User.FirstName;
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.putExtra("sms_body", smsBody);
sendIntent.setType("vnd.android-dir/mms-sms");
startActivity(sendIntent);
答案 1 :(得分:0)
以下代码完美无缺
String body = "This is the message i need to send";
String num = "smsto:999416231";
String[] tokens = num.split(":");
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.putExtra("address",tokens[1]);
sendIntent.putExtra("sms_body", body);
sendIntent.setType("vnd.android-dir/mms-sms");
startActivity(sendIntent);
我在问题中提到的代码用于将数字作为Uri.parse(uri)
传递,其值为"smsto:9941..."
但在新代码中,我正在拆分文本和数字。