Приложение SMS не работает в Android 3.0 и выше

Это фрагмент кода, который я использую для вызова приложения SMS:

Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse(uri));
            intent.putExtra("sms_body", body);
            intent.putExtra("compose_mode", true);
            launchIntent(intent);

На устройствах с версией os ниже Android 3.0 вышеуказанный код работает нормально, страница SMS открывается и сообщение отправляется, а номера заполняются правильно, но в устройствах Android 3.0 и выше это больше не работает.

В Android 3.0 вызывается SMS-намерение, и номер заполняется, а не текст, где, как в Android 4.0, вызывается SMS-намерение, и текст заполняется, а не номер.

Кто-нибудь знает решение этой проблемы?

2 ответа

Решение

Следующий код работает отлично

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

Но в новом коде я делю текст и число.

Этот код будет работать для всех версий 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);
Другие вопросы по тегам