una texto studio programacion por mensajes mandar llamada leer hacer enviar directa boton java android android-intent sms send

java - texto - Android envía SMS automáticamente al hacer clic en el botón



manual de programacion android pdf (4)

Estoy tratando de enviar automáticamente mensajes SMS a un cierto número cuando el usuario presiona un botón en la pantalla.

Este es mi código:

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 presiono Enviar. Solo quiero que haga este proceso automáticamente sin llevarme a otra pantalla. Como ya he definido mi mensaje, solo quiero enviarlo a un número en particular.

Y tampoco estoy seguro si coloco el número de teléfono corrent en la segunda línea de código. ¿Tengo que poner mi código de país primero o puedo poner mi número de teléfono móvil y funcionará?

Gracias


Prueba 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.


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);


Puedes usar 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); }});


la manera más fácil es usar SmsManager.Telephony.