El envío de SMS mediante Intent no incluye destinatarios en algunos dispositivos
Envío SMS usando el código abajo:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("smsto:" + phoneNumber)); intent.putExtra("address", phoneNumber); intent.putExtra("sms_body", messageBody); intent.setType("vnd.android-dir/mms-sms"); context.startActivity(intent);
Añadí ambos Uri con smsto: y la dirección String extra a Intent. Funciona en la mayoría de los dispositivos, pero en algunos – no lo hace. Uno de los dispositivos es SE XPERIA Mini. ¿Qué más se puede agregar al enviar SMS para asegurarse de que el destinatario está configurado en la aplicación de SMS?
- Cómo obtener el nombre del contacto al recibir SMS
- ¿Cuáles son los significados de los valores en el proveedor de contenidos "content // sms /" de Android?
- Android 1.6 SMS (antiguo código de aplicación)
- enviar SMS Intent en Android
- Leer mensajes de entrada de un número determinado y mostrarlos en una actividad
- SMS Broadcast Receiver no recibe el mensaje de texto
- Android - Extraer texto de SMS
- Obtener mensajes SMS desde la tarjeta SIM
- Anular la aplicación predeterminada de mensajería de android
- Inicie sms Actividad @ ConversarionList.class de mi propia aplicación
- SMS no recibidos ... sólo en ciertos casos ... Carrier / Country?
- Tarjeta dual sim enviar sms android
- Acceso a mensajes SMS en la tarjeta SIM
Busqué en la fuente de intención y parece que el tipo de intención de ajuste elimina datos y elimina el tipo de datos de configuración. Esto es lo que he encontrado:
public Intent setData(Uri data) { mData = data; mType = null; return this; } public Intent setType(String type) { mData = null; mType = type; return this; } public Intent setDataAndType(Uri data, String type) { mData = data; mType = type; return this; }
Así que el tipo de ajuste reemplaza mis datos proporcionados en Uri.parse ("smsto:" + phoneNumber). También intenté usar setDataAndType, pero entonces android apenas no puede encontrar la intención correcta de comenzar para tal combinación … Ésta es tan la solución final:
Intent intent = new Intent(Intent.ACTION_VIEW); intent.putExtra("address", phoneNumber); intent.putExtra("sms_body", messageBody); intent.setData(Uri.parse("smsto:" + phoneNumber)); context.startActivity(intent);
Parece que funciona en diferentes dispositivos en lo que puedo probar. Espero que esto sea útil para cualquier persona que enfrenta el mismo problema.
¡Aclamaciones!
- ¿Es aconsejable desarrollar y publicar una aplicación Android sin probarla primero en un dispositivo real?
- Android Notification no está mostrando Color Icon en Marshmallow