Android enviar SMS automáticamente al hacer clic en el botón
Estoy intentando enviar automáticamente el mensaje de SMS a cierto número cuando el usuario presiona un botón en la pantalla.
Este es mi código:
- Cómo obtener SMS de borrador en Android 6 Marshmallow
- Detectar qué tarjeta SIM ha recibido el mensaje
- Error básico en AndroidManifest.xml para recibir permiso de SMS
- ¿Cómo iniciar / enviar SMS desde una página web HTML5 usando funciones nativas de dispositivos?
- Lanzar la aplicación android cuando se pulsa un enlace en SMS
Intent smsIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("sms:xxxxxxxxxxx")); smsIntent.putExtra("sms_body", "Hello"); startActivity(smsIntent);
Xxxxxxx = número de teléfono
Tengo los siguientes permisos:
<uses-permission android:name="android.permission.SEND_SMS"></uses-permission> <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
Cuando presiono el botón me lleva a otra pantalla donde puedo editar mi texto y presionar Enviar. Sólo quiero que haga este proceso automáticamente sin llevarme a otra pantalla. Como ya he definido mi mensaje, sólo quiero enviarlo a un número determinado.
Y también no estoy seguro de si pongo el número de teléfono corrent en la segunda línea de código. ¿Tengo que poner mi código de país allí primero o puedo simplemente poner mi número de teléfono móvil y funcionará?
Gracias
- Volver automáticamente a la anterior aplicación de SMS predeterminada
- Observe los SMS que envían la aplicación en el emulador
- ACTION_SEND utilizado para enviar sms
- Android - Determinar el límite de texto SMS
- Cómo eliminar un SMS de la bandeja de entrada en Android mediante programación?
- Buzón de entrada de SMS de consulta de Android por nombre de remitente
- Enviar SMS a través de ADB al teléfono
- SGS-3 bug relacionado con la lista de conversaciones SMS?
Pruebe este código:
String messageToSend = "this is a message"; String number = "2121234567"; SmsManager.getDefault().sendTextMessage(number, null, messageToSend, null,null);
Con respecto al número, debe ingresar el número como si lo estuviera llamando desde el teléfono o enviando un mensaje sms de la manera normal.
Puede utilizar la construcción en Intent también:
buttonSendSms_intent.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View arg0) { // TODO Auto-generated method stub String smsNumber = edittextSmsNumber.getText().toString(); String smsText = edittextSmsText.getText().toString(); Uri uri = Uri.parse("smsto:" + smsNumber); Intent intent = new Intent(Intent.ACTION_SENDTO, uri); intent.putExtra("sms_body", smsText); startActivity(intent); }});
Prueba esto
private static final String SMS_SENT_INTENT_FILTER = "com.yourapp.sms_send"; private static final String SMS_DELIVERED_INTENT_FILTER = "com.yourapp.sms_delivered"; String message = "hey, this is my message"; String phnNo = " " //preferable use complete international number PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, new Intent( SMS_SENT_INTENT_FILTER), 0); PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0, new Intent( SMS_DELIVERED_INTENT_FILTER), 0); SmsManager sms = SmsManager.getDefault(); sms.sendTextMessage(phnNo, null, message, sentPI, deliveredPI);
La manera fácil es utilizar SmsManager.Telephony.