texto studio que programar para mensajes mensaje mandar hora hacer for envie enviar como cierta app android android-activity sms

android - studio - programar mensajes de texto iphone



¿Puedo enviar automáticamente SMS(sin que el usuario deba aprobarlo)? (4)

Soy bastante nuevo en Android. Estoy tratando de enviar SMS desde la aplicación de Android. Cuando se usa la intención de SMS, se abre la ventana de SMS y el usuario debe aprobar el SMS y enviarlo.

¿Hay alguna manera de enviar automáticamente el SMS sin que el usuario lo confirme?

Gracias, Lior


Puede usar este método para enviar un sms. Si el sms tiene más de 160 caracteres, se utiliza sendMultipartTextMessage.

private void sendSms(String phonenumber,String message, boolean isBinary) { SmsManager manager = SmsManager.getDefault(); PendingIntent piSend = PendingIntent.getBroadcast(this, 0, new Intent(SMS_SENT), 0); PendingIntent piDelivered = PendingIntent.getBroadcast(this, 0, new Intent(SMS_DELIVERED), 0); if(isBinary) { byte[] data = new byte[message.length()]; for(int index=0; index<message.length() && index < MAX_SMS_MESSAGE_LENGTH; ++index) { data[index] = (byte)message.charAt(index); } manager.sendDataMessage(phonenumber, null, (short) SMS_PORT, data,piSend, piDelivered); } else { int length = message.length(); if(length > MAX_SMS_MESSAGE_LENGTH) { ArrayList<String> messagelist = manager.divideMessage(message); manager.sendMultipartTextMessage(phonenumber, null, messagelist, null, null); } else { manager.sendTextMessage(phonenumber, null, message, piSend, piDelivered); } } }

Actualizar

piSend y piDelivered son intención pendiente Pueden activar una transmisión cuando el método termine de enviar un SMS

Aquí hay un código de muestra para el receptor de difusión

private BroadcastReceiver receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String message = null; switch (getResultCode()) { case Activity.RESULT_OK: message = "Message sent!"; break; case SmsManager.RESULT_ERROR_GENERIC_FAILURE: message = "Error. Message not sent."; break; case SmsManager.RESULT_ERROR_NO_SERVICE: message = "Error: No service."; break; case SmsManager.RESULT_ERROR_NULL_PDU: message = "Error: Null PDU."; break; case SmsManager.RESULT_ERROR_RADIO_OFF: message = "Error: Radio off."; break; } AppMsg.makeText(SendMessagesWindow.this, message, AppMsg.STYLE_CONFIRM).setLayoutGravity(Gravity.BOTTOM) .show(); } };

y puedes registrarlo usando la línea debajo de tu Actividad

registerReceiver(receiver, new IntentFilter(SMS_SENT)); // SMS_SENT is a constant

Además, no te olvides de cancelar la transmisión en onDestroy

@Override protected void onDestroy() { unregisterReceiver(receiver); super.onDestroy(); }


Sí, puede enviar sms sin hacer interacción con el usuario ... Pero funciona, cuando el usuario solo desea enviar sms a un solo número.

try { SmsManager.getDefault().sendTextMessage(RecipientNumber, null, "Hello SMS!", null, null); } catch (Exception e) { AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this); AlertDialog dialog = alertDialogBuilder.create(); dialog.setMessage(e.getMessage()); dialog.show(); }

Además, agregue el permiso de manifiesto ...

<uses-permission android:name="android.permission.SEND_SMS"/>


Sí, puedes enviar SMS usando SmsManager . Tenga en cuenta que su aplicación necesitará el permiso SEND_SMS para que esto funcione.


Si su aplicación tiene en AndroidManifest.xml el siguiente permiso

<uses-permission android:name="android.permission.SEND_SMS"/>

puedes enviar tantos SMS como quieras con

SmsManager manager = SmsManager.getDefault(); manager.sendTextMessage(...);

y eso es todo.