swirl logo

About     Archive     Feed     Impressum

Android: SMS versenden

Hintergrund

Zwar hat die SMS längt nicht mehr der Stellenwert als das mobile Kommunikationsmittel, dennoch gibt es vereinzelt Anwendungsfälle, bei der der Versand von SMS-Nachrichten erforderlich ist.

Implementierung

Grundsätzlich gibt es zwei unterschiedliche Ansätze, wie eine SMS versendet werden kann:

  1. Versand über eine SMS-App
  2. Direkter Versand mittels SmsManager

1. Versand über SMS-App

Beim Versand der SMS über die eingestellte SMS-App erhält der Benutzer nochmal die Möglichkeit zur Kontrolle. Der Benutzer muss somit aktiv die vorausgefüllte SMS versenden:

Intent intent = new Intent( Intent.ACTION_VIEW, Uri.parse("sms:" + phoneNumber));
intent.putExtra("sms_body", "Nachricht der SMS...");
startActivity(intent);

Vorteil bei dieser Variante ist, dass der Versand für den Benutzer transparent ist und die SMS im Gesprächsverlauf der SMS-Anwendung sichtbar ist.

2. Direkter Versand mittels SmsManager

Im Gegensatz zur zuvor vorgestellten Methode ist hierbei keine Bestätigung des Benutzers zum Versand notwendig. Der Versand erfolgt somit für den Benutzer "unsichtbar".

SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(number, null, message, null, null);

Zudem wird die Berechtigung SEND_SMS im Manifest benötigt:

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

Neben der Telefonnummer bzw. der SMS-Nachricht lässt sich Mithilfe der letzten beide Methodenparameter jeweils ein PendingIntent hinterlegen, welches ausgelöst werden soll wenn - die Nachricht erfolgreich versendet wurde - die Nachricht erfolgreich zugestellt wurde

Hire me!