4

これは、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より前のOSバージョンのデバイスでは、上記のコードは正常に機能し、SMSページが開き、メッセージが送信され、番号が正しく入力されますが、Android3.0以降のデバイスではこれは機能しなくなります。

Android 3.0では、SMSインテントが呼び出され、テキストではなく番号が入力されますが、Android 4.0では、SMSインテントが呼び出され、番号ではなくテキストが入力されます。

誰かがこの問題の解決策を知っていますか?

4

2 に答える 2

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);
于 2012-05-19T10:40:18.727 に答える
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..."

しかし、新しいコードでは、テキストと数字を分割しています。

于 2012-05-21T13:14:44.090 に答える