So senden Sie SMS-Nachrichten in Android
In Android können Sie die API vonSmsManager
oder die AnwendungBuilt-in SMS
des Geräts verwenden, um eine SMS-Nachricht zu senden. In diesem Tutorial zeigen wir Ihnen zwei grundlegende Beispiele zum Senden von SMS-Nachrichten:
-
SmsManager API
SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage("phoneNo", null, "sms message", null, null);
-
Eingebaute SMS-Anwendung
Intent sendIntent = new Intent(Intent.ACTION_VIEW); sendIntent.putExtra("sms_body", "default content"); sendIntent.setType("vnd.android-dir/mms-sms"); startActivity(sendIntent);
Natürlich benötigen beide die Erlaubnis vonSEND_SMS.
P.S This project is developed in Eclipse 3.7, and tested with Samsung Galaxy S2 (Android 2.3.3).
Note
Die integrierte SMS-Anwendungslösung ist der einfachste Weg, da Sie das Gerät alles für Sie erledigen lassen.
1. SmsManager Beispiel
Android-Layout-Datei auf Textfelder (Telefonnummer, SMS-Nachricht) und Schaltfläche zum Senden der SMS-Nachricht.
Datei: res / layout / main.xml
File : SendSMSActivity.java - Aktivität zum Senden von SMS überSmsManager
.
package com.example.android; import android.app.Activity; import android.os.Bundle; import android.telephony.SmsManager; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class SendSMSActivity extends Activity { Button buttonSend; EditText textPhoneNo; EditText textSMS; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); buttonSend = (Button) findViewById(R.id.buttonSend); textPhoneNo = (EditText) findViewById(R.id.editTextPhoneNo); textSMS = (EditText) findViewById(R.id.editTextSMS); buttonSend.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String phoneNo = textPhoneNo.getText().toString(); String sms = textSMS.getText().toString(); try { SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage(phoneNo, null, sms, null, null); Toast.makeText(getApplicationContext(), "SMS Sent!", Toast.LENGTH_LONG).show(); } catch (Exception e) { Toast.makeText(getApplicationContext(), "SMS faild, please try again later!", Toast.LENGTH_LONG).show(); e.printStackTrace(); } } }); } }
File : AndroidManifest.xml benötigen die Erlaubnis vonSEND_SMS.
Siehe Demo:
2. Beispiel für eine integrierte SMS-Anwendung
In diesem Beispiel wird die integrierte SMS-Anwendung des Geräts zum Senden der SMS-Nachricht verwendet.
File : res/layout/main.xml - Nur eine Schaltfläche.
File : SendSMSActivity.java - Aktivitätsklasse zum Verwenden der integrierten SMS-Absicht zum Versenden der SMS-Nachricht.
package com.example.android; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class SendSMSActivity extends Activity { Button buttonSend; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); buttonSend = (Button) findViewById(R.id.buttonSend); buttonSend.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { try { Intent sendIntent = new Intent(Intent.ACTION_VIEW); sendIntent.putExtra("sms_body", "default content"); sendIntent.setType("vnd.android-dir/mms-sms"); startActivity(sendIntent); } catch (Exception e) { Toast.makeText(getApplicationContext(), "SMS faild, please try again later!", Toast.LENGTH_LONG).show(); e.printStackTrace(); } } }); } }
Siehe Demo:
Quellcode herunterladen
Laden Sie es herunter -1. Android-Send-SMS-Example.zip (16 KB)
Laden Sie es herunter -2. Android-Build-In-SMS-Application-Example.zip (16 KB)