短信应用程序意图无法在Android 3.0及更高版本中工作

时间:2012-05-19 10:30:26

标签: android sms android-3.0-honeycomb

这是我用来调用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中调用短信意图并且文本被填充而不是数字的文本。

有谁知道这个问题的解决方案?

2 个答案:

答案 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..."

但在新代码中,我正在拆分文本和数字。