Приложение 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);