La intención de la aplicación sms no funciona en android 3.0 y superior
Este es el código que utilizo para llamar a la aplicación SMS:
Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse(uri)); intent.putExtra("sms_body", body); intent.putExtra("compose_mode", true); launchIntent(intent);
En los dispositivos con una versión de OS por debajo de Android 3.0, el código anterior funciona correctamente, la página de SMS se abre y el mensaje se envía y los números se cumplen correctamente, pero en Android 3.0 y anteriores, esto no funciona.
- Envío y recepción de texto mediante el emulador de Android
- Leer todos los SMS de un remitente en particular
- ¿Cómo obtener el informe de entrega de cada SMS enviado en bucle Android?
- Android: Propuesta de mensaje
- Bloquear SMS salientes
En Android 3.0 la intención de SMS se llama y el número se llena y no el texto donde como en Android 4.0 se invoca la intención de SMS y el texto se llena y no el número.
¿Alguien sabe la solución para este problema?
- Android android.permission.SEND_SMS no funciona
- Cómo obtener el número de teléfono del destinatario de SMS en Android
- Obtener el identificador de SMS del receptor de difusión
- SMS tipo de Android 0
- Android enviar SMS automáticamente al hacer clic en el botón
- SMS de confirmación no deseados enviados por el proveedor en Austria
- SMS enviado a través de SmsManager no automáticamente en la carpeta SENT?
- Cómo enviar caracteres no impresos a través de SMS
Este código funcionará para todas las versiones de 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);
El siguiente código funciona perfecto
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);
El código que he mencionado en mi pregunta es usar para pasar el número como Uri.parse(uri)
y su valor es "smsto:9941..."
Pero en el nuevo código estoy dividiendo el texto y el número.