@ toobsco42: No, estás haciendo exactamente lo contrario. Usted está enviando SMS usted mismo y esta pregunta lo requiere a través de la aplicación estándar de SMS .
Este artículo explica fácilmente SMS / MMS en Android, proporciona simplemente un ejemplo de código para enviar SMS y recibir SMS: codeproject.com/Articles/1044639/…
Gracias por tu código. y quiero agregar, ya que necesito poner mi texto predefinido. Obtuve esta solución Intent intent = new Intent (Intent.ACTION_VIEW, Uri.parse ("sms:" + phoneNumber)); intent.putExtra ("sms_body", mensaje); startActivity (intento);
DJ
1
¿Cómo configurar "phoneNumber" de la lista de contactos?
Saeed M.
@djk gracias quiero leer todos los contactos y quiero una página propia para enviar sms con autocompletar pero no puedo leer los contactos ¿algún buen tutorial?
Guru el
Usaría el widget de composición de sms predeterminado para hacerlo. solo deje el número de teléfono vacío (es opcional)
shem
1
Hola. Quiero enviar SMS a granel. como 10,000 sms enviados con un solo clic. Es posible ? Escuché que Android envía 30 sms cada 30 minutos. por
favor
151
Esto funcionó para mí.
publicvoid onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);
setContentView(R.layout.main);Button btnSendSMS =(Button) findViewById(R.id.btnSendSMS);
btnSendSMS.setOnClickListener(newView.OnClickListener(){publicvoid onClick(View v){
sendSMS("5556","Hi You got a message!");/*here i can send message to emulator 5556. In Real device
*you can change number*/}});}//Sends an SMS message to another deviceprivatevoid sendSMS(String phoneNumber,String message){SmsManager sms =SmsManager.getDefault();
sms.sendTextMessage(phoneNumber,null, message,null,null);}
La pregunta pide mostrar el SMS en la vista de redacción estándar. Esto es exactamente lo contrario, enviar SMS a espaldas del usuario, ¿no?
Jan Hudec
No puede enviar un mensaje si hay un apóstrofe en él.
loco
39
Pruebe el siguiente código y luego llame sendSMS("99999999999", "message");para enviar sms en el número deseado.
//---sends an SMS message to another device---@SuppressWarnings("deprecation")privatevoid sendSMS(String phoneNumber,String message){Log.v("phoneNumber",phoneNumber);Log.v("MEssage",message);PendingIntent pi =PendingIntent.getActivity(this,0,newIntent(this,**DummyClasshere.class**),0);SmsManager sms =SmsManager.getDefault();
sms.sendTextMessage(phoneNumber,null, message, pi,null);}
Coloque el siguiente permiso en el AndroidManifest.xmlarchivo.
Este código se utiliza para enviar mensajes en segundo plano (sin mostrar el compositor de mensajes) . También puede funcionar dentro del receptor de difusión . Si desea enviar un mensaje desde el receptor Broadcast.
+1. Trabajó para mi requerimiento. Pero me falta una cosa. Este mensaje no aparece en mis artículos enviados. ¿Por qué es así?
Tahir Akram
No hemos usado el proceso Inten predeterminado para el envío de SMS, solo estamos usando el Administrador de SMS. La intención se reunirá para mantener el registro del SmsManager.
Dwivedi Ji
Si. Esto es muy útil para mi. Pero el mensaje de confirmación dado después de enviar sms significa que podría ser mejor.
Gunaseelan
3
Solo recomendaría agregar este bloque en try-catch.
Tanveer Shaikh
10
En Android, tenemos la clase SmsManager que administra las operaciones de SMS, como el envío de datos, texto y mensajes de texto PDU. Obtenga este objeto llamando al método estático SmsManager.getDefault ().
Agrego mi método de SMS si puede ayudar a alguien. Tenga cuidado con smsManager.sendTextMessage, si el texto es demasiado largo, el mensaje no desaparece. Debes respetar la longitud máxima dependiendo de la codificación. Más información aquí SMS Manager envía un mensaje mutlipart cuando hay menos de 160 caracteres
Parte de lo que se explica anteriormente está destinado solo para colocar un SMS en un estado 'listo para lanzar'. como dijo Senthil Mg, puede usar el administrador de sms para enviar el sms directamente, pero SMSManagerse ha movido aandroid.telephony.SmsManager
Sé que no es mucha más información, pero podría ayudar a alguien algún día.
Esto permite enviar mensajes de texto a través de la aplicación existente. phoneNumber: es String. Si no desea especificar el número de teléfono, use la cadena vacía "".
Actualización: si usa Intent para enviar sms, no necesita el permiso android.permission.SEND_SMS.
Nafis Ahmad
0
Puede omitir el número de teléfono para permitir que el usuario solo elija entre los contactos, pero inserte su texto sms en el cuerpo. El código es para Xamarin Android:
var uri =Uri.Parse("smsto:");//append your number here for explicit nbvar intent =newIntent(Intent.ActionSendto, uri);
intent.PutExtra("sms_body", text);Context.StartActivity(intent);
dónde
El contexto es Xamarin.Essentials.Platform.CurrentActivity ?? Application.Context
Respuestas:
Puedes usar el siguiente código:
Asegúrese de establecer
phoneNumber
el número de teléfono al que desea enviar el mensajePuede agregar un mensaje al SMS con (de comentarios):
fuente
Esto funcionó para mí.
Puede agregar esta línea en AndroidManifest.xml
Mira esto
Esto puede ser útil para usted.
fuente
Pruebe el siguiente código y luego llame
sendSMS("99999999999", "message");
para enviar sms en el número deseado.Coloque el siguiente permiso en el
AndroidManifest.xml
archivo.Espero que esto pueda ayudar.
Actualización del comentario: DummyClasshere.class es una actividad sin hacer ningún proceso o la clase en la que necesita navegar.
fuente
new Intent()
y eso lo hace.Esto definitivamente funcionará. En esto, envíe un mensaje sin usar ninguna intención.
Este código se utiliza para enviar mensajes en segundo plano (sin mostrar el compositor de mensajes) . También puede funcionar dentro del receptor de difusión . Si desea enviar un mensaje desde el receptor Broadcast.
fuente
En Android, tenemos la clase SmsManager que administra las operaciones de SMS, como el envío de datos, texto y mensajes de texto PDU. Obtenga este objeto llamando al método estático SmsManager.getDefault ().
SmsManager Javadoc
Consulte el siguiente enlace para obtener el código de muestra para enviar SMS:
artículo sobre envío y recepción de mensajes SMS en Android
fuente
Espero que este código te ayude :)
fuente
Agrego mi método de SMS si puede ayudar a alguien. Tenga cuidado con smsManager.sendTextMessage, si el texto es demasiado largo, el mensaje no desaparece. Debes respetar la longitud máxima dependiendo de la codificación. Más información aquí SMS Manager envía un mensaje mutlipart cuando hay menos de 160 caracteres
// PARA USAR EveryWhere
//Manifiesto
//JAVA
fuente
Incluya el siguiente permiso en su archivo AndroidManifest.xml
fuente
Parte de lo que se explica anteriormente está destinado solo para colocar un SMS en un estado 'listo para lanzar'. como dijo Senthil Mg, puede usar el administrador de sms para enviar el sms directamente, pero
SMSManager
se ha movido aandroid.telephony.SmsManager
Sé que no es mucha más información, pero podría ayudar a alguien algún día.
fuente
Espero que esto pueda ayudarte ...
Nombre de archivo = MainActivity.java
agregue esta línea en AndroidManifest.xml
fuente
Esto permite enviar mensajes de texto a través de la aplicación existente. phoneNumber: es String. Si no desea especificar el número de teléfono, use la cadena vacía "".
fuente
Enviar SMS desde KitKat y superior: - AGREGAR este permiso en su AndroidManifest.xml
Debería tener que implementar también el permiso de tiempo de ejecución para Marshmallow y la versión anterior.
AndroidManifest.xml
El código que será el siguiente:
activity_conversation_list.xml
ConversationListActivity.java
Este es el código para el diseño de sms y para enviar SMS: -
activity_compose_sms.xml
fragment_compose_sms.xml
ComposeSMSActivity.java
Eso es.
fuente
Puede usar esto para enviar sms a cualquier número:
fuente
Puede omitir el número de teléfono para permitir que el usuario solo elija entre los contactos, pero inserte su texto sms en el cuerpo. El código es para Xamarin Android:
dónde
El contexto es
Xamarin.Essentials.Platform.CurrentActivity ?? Application.Context
fuente