У меня проблема.
Задача: Открыть стандартную программу / окно SMS Send (новое сообщение) с двумя параметрами: номер телефона и текстовое тело.
Я нашел два решения:
1)
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.putExtra("sms_body", "SMS text");
intent.putExtra("address", "123456789");
intent.setType("vnd.android-dir/mms-sms");
startActivity(intent);
Отлично работает во всех эмуляторах Android 2.x.
В реальном телефоне с Android 2.2 (возможно, 2.3.x) я вижу только тело SMS без номера телефона
2)
Uri uri = Uri.parse("smsto:123456789");
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
intent.putExtra("sms_body", "SMS text");
startActivity(intent);
Прекрасно работает во всех эмуляторах Android 2.x.
В реальном телефоне с Android 2.2 (возможно, 2.3.x) я вижу только номер телефона без основного текста SMS
В AndroidManifest.xml:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
Фрагменты, протестированные на:
Samsung Galaxy Tap 7` P1000 с Android 2.2
Motorola Milestone (кодовое название США: Motorola Droid) Android 2.2 Up3
Оба метода хорошо работают на Android 2.1 (LG GT540 Optimus).