In Android, können Sie SmsManager API oder Geräten Integrierte SMS-Anwendung nutzen, um SMS zu senden. In diesem Lernprogramm zeigt, dass wir Ihnen zwei grundlegende Beispiele, um SMS-Nachricht zu senden -
SmsManager API
SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage("phoneNo", null, "sms message", null, null);
Integrierte 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 müssen sowohl SEND_SMS Erlaubnis.
<uses-permission android:name="android.permission.SEND_SMS" />
Zusätzlich zu dem obigen Verfahren gibt es einige andere wichtige Funktionen im SmsManager Klasse. Diese Methoden sind: -
Sr.No. | Verfahren & Beschreibung |
---|---|
1 | Arraylist <String> divideMessage (String text)
Diese Methode teilt eine Nachricht Text in mehrere Fragmente, keiner größer ist als die maximale SMS-Nachrichtengröße.
|
2 | statische SmsManager getDefault ()
Diese Methode wird verwendet, um die Standardinstanz der SmsManager erhalten
|
3 | nichtig sendDataMessage (String destination, String scAddress, kurze destination, byte [] Daten, PendingIntent sentIntent, PendingIntent deliveryIntent)
Diese Methode wird verwendet, um eine Daten basierten SMS an eine bestimmte Anwendung Port zu senden.
|
4 | nichtig sendMultipartTextMessage (String destination, String scAddress, Arraylist <String> Teile, Arraylist <PendingIntent> sentIntents, Arraylist <PendingIntent> deliveryIntents)
Senden Sie eine mehrteilige textbasierten SMS.
|
5 | nichtig sendTextMessage (String destination, String scAddress, String Text, PendingIntent sentIntent, PendingIntent deliveryIntent)
Senden Sie eine Text-basierte SMS.
|
Beispiel
Folgende Beispiel zeigt, in der Praxis, wie man SmsManager Objekt verwenden, um eine SMS an die angegebene Mobiltelefonnummer zu senden.
Um bei diesem Beispiel zu experimentieren, werden Sie tatsächlich Mobile-Gerät mit der neuesten Android OS ausgestattet benötigen, andernfalls müssen Sie mit Emulator, die nicht arbeiten können kämpfen.
Schritt | Bezeichnung |
---|---|
1 | Sie verwenden Android Studio IDE, eine Android-Anwendung erstellen und benennen es als tutorialspoint unter einem Paketcom.example.tutorialspoint. Bei der Erstellung dieses Projekt, stellen Sie sicher SDK Ziel und Kompilieren Sie mit bei der neuesten Version des Android SDK zu höheren Ebenen der APIs verwenden. |
2 | Ändern src / MainActivity.java Datei und fügen erforderlichen Code, um auf E-Mails senden zu nehmen. |
3 | Ändern Sie das Layout XML-Datei res / layout / activity_main.xml jede GUI-Komponente hinzufügen, wenn erforderlich. Ich füge eine einfache GUI, um Handy-Nummer und SMS-Text, um gesendet werden und eine einfache Schaltfläche, um SMS zu senden. |
4 | Keine Notwendigkeit, Standard-String-Konstanten in res / Werte / strings.xml definieren. Android Studio kümmert sich um Standard-Konstanten. |
5 | Ändern AndroidManifest.xml wie unten gezeigt |
6 | Führen Sie die Anwendung auf Android-Emulator zu starten, und überprüfen Sie das Ergebnis der Änderungen in der Anwendung durchgeführt. |
Im Folgenden ist der Gehalt des modifizierten Haupttätigkeit Datei src / com.example.tutorialspoint / MainActivity.java.
package com.example.tutorialspoint; import android.os.Bundle; import android.app.Activity; import android.telephony.SmsManager; import android.util.Log; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity { Button sendBtn; EditText txtphoneNo; EditText txtMessage; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sendBtn = (Button) findViewById(R.id.btnSendSMS); txtphoneNo = (EditText) findViewById(R.id.editText); txtMessage = (EditText) findViewById(R.id.editText2); sendBtn.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { sendSMSMessage(); } }); } protected void sendSMSMessage() { Log.i("Send SMS", ""); String phoneNo = txtphoneNo.getText().toString(); String message = txtMessage.getText().toString(); try { SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage(phoneNo, null, message, null, null); Toast.makeText(getApplicationContext(), "SMS sent.", Toast.LENGTH_LONG).show(); } catch (Exception e) { Toast.makeText(getApplicationContext(), "SMS faild, please try again.", Toast.LENGTH_LONG).show(); e.printStackTrace(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
Im Anschluss wird der Inhalt sein res / layout / activity_main.xml Datei:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="MainActivity"> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Sending SMS Example" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:textSize="30dp" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Tutorials point " android:textColor="#ff87ff09" android:textSize="30dp" android:layout_below="@+id/textView1" android:layout_alignRight="@+id/imageButton" android:layout_alignEnd="@+id/imageButton" /> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageButton" android:src="@drawable/abc" android:layout_below="@+id/textView2" android:layout_centerHorizontal="true" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/editText" android:hint="Enter Phone Number" android:phoneNumber="true" android:textColorHint="@color/abc_primary_text_material_dark" android:layout_below="@+id/imageButton" android:layout_centerHorizontal="true" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/editText2" android:layout_below="@+id/editText" android:layout_alignLeft="@+id/editText" android:layout_alignStart="@+id/editText" android:textColorHint="@color/abc_primary_text_material_dark" android:layout_alignRight="@+id/imageButton" android:layout_alignEnd="@+id/imageButton" android:hint="Enter SMS" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Send Sms" android:id="@+id/btnSendSMS" android:layout_below="@+id/editText2" android:layout_centerHorizontal="true" android:layout_marginTop="48dp" /> </RelativeLayout>
Im Anschluss wird der Inhalt sein res / Werte / strings.xml zwei neue Konstanten definieren -
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">tutorialspoint</string> <string name="action_settings">Settings</string> </resources>
Im Folgenden ist der Standardinhalt der AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.tutorialspoint" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="22" /> <uses-permission android:name="android.permission.SEND_SMS" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.tutorialspoint.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Lasst uns versuchen, Ihre Lauf tutorialspoint Anwendung. Ich nehme an, Sie Ihre aktuelle Android-Gerät mit dem Computer verbunden haben. Um die App vom Android-Studio, öffnen Sie eine der Aktivität Dateien Ihres Projekt auszuführen, und klicken Sie auf Ausführen-Symbol in der Symbolleiste. Vor dem Start der Anwendung wird Android Studio Installer folgende Fenster angezeigt werden, um eine Option, wo Sie Ihre Android-Anwendung ausgeführt werden soll.
Jetzt können Sie geben eine gewünschte Mobilfunknummer und eine Textnachricht auf dieser Nummer gesendet werden. Schließlich klicken Sie aufSend SMS Knopf, um Ihre SMS zu senden. Stellen Sie sicher, Ihre GSM / CDMA-Verbindung funktioniert gut auf Ihre SMS an den Empfänger zu liefern.
Sie können eine Reihe von SMS durch Komma getrennt zu nehmen und dann in Ihrem Programm haben Sie, um sie in ein Array Zeichenfolge zu analysieren und schließlich können Sie eine Schleife verwenden, um Nachricht an alle angegebenen Zahlen zu senden. Das ist, wie können Sie Ihre eigenen SMS-Client zu schreiben. Nächste Abschnitt wird Ihnen zeigen, wie bestehende SMS-Client verwenden, um SMS zu senden.
An vorinstallierten Intent to SMS senden
Sie können Android Intent verwenden, um SMS durch Aufrufen von integrierten SMS Funktionalität des Android schicken. Folgende Abschnitt erläutert verschiedenen Teilen unseres Intent-Objekt erforderlich ist, um eine SMS zu senden.
Intent Object - Aktion zum Senden von SMS
Sie verwenden ACTION_VIEW Aktion zu starten ein SMS-Client auf Ihrem Android-Gerät installiert. Finden Sie einfache Syntax, um eine Absichtserklärung mit ACTION_VIEW Aktion zu erstellen
Intent smsIntent = new Intent(Intent.ACTION_VIEW);
Intent Object - Data / Art, um SMS zu senden
Um eine SMS müssen Sie angeben, senden smsto: als URI mit setData () Methode und Datentyp wird es sein, vnd.android-dir / MMS-SMS mit setType () -Methode wie folgt -
smsIntent.setData(Uri.parse("smsto:")); smsIntent.setType("vnd.android-dir/mms-sms");
Intent Object - Extra, um SMS zu senden
Android hat eine eingebaute Unterstützung für Telefonnummer und Textnachricht hinzuzufügen, um eine SMS zu senden wie folgt -
smsIntent.putExtra("address" , new String("0123456789;3393993300")); smsIntent.putExtra("sms_body" , "Test SMS to Angilla");
Hier Adresse und sms_body Groß- und Kleinschreibung und sollte nur in kleinen Buchstaben angegeben werden. Sie können mehr als eine Nummer in einzelnen String, sondern durch Semikolon getrennt angeben (;).
Beispiel
Folgende Beispiel zeigt, in der Praxis, wie man Intent Objekt verwenden, um SMS-Client zu starten, um eine SMS an den angegebenen Empfänger zu senden.
Um bei diesem Beispiel zu experimentieren, werden Sie tatsächlich Mobile-Gerät mit der neuesten Android OS ausgestattet benötigen, andernfalls müssen Sie mit Emulator, die nicht arbeiten können kämpfen.
Schritt | Bezeichnung |
---|---|
1 | Sie werden Android-Studio IDE verwenden, um ein Android-Anwendung erstellen und benennen es als tutorialspoint unter einem Paketcom.example.tutorialspoint. Bei der Erstellung dieses Projekt, stellen Sie sicher SDK Ziel und Kompilieren Sie mit bei der neuesten Version des Android SDK zu höheren Ebenen der APIs verwenden. |
2 | Ändern src / MainActivity.java Datei und fügen erforderlichen Code, um auf das Senden von SMS zu nehmen. |
3 | Ändern Sie das Layout XML-Datei res / layout / activity_main.xml jede GUI-Komponente hinzufügen, wenn erforderlich. Ich füge eine einfache Schaltfläche, um SMS-Client zu starten. |
4 | Keine Notwendigkeit, Standard constants.Android Studio definieren nimmt Standardkonstanten. |
5 | Ändern AndroidManifest.xml wie unten gezeigt |
6 | Führen Sie die Anwendung auf Android-Emulator zu starten, und überprüfen Sie das Ergebnis der Änderungen in der Anwendung durchgeführt. |
Im Folgenden ist der Gehalt des modifizierten Haupttätigkeit Datei src / com.example.tutorialspoint / MainActivity.java.
package com.example.tutorialspoint; import android.net.Uri; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.util.Log; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button startBtn = (Button) findViewById(R.id.button); startBtn.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { sendSMS(); } }); } protected void sendSMS() { Log.i("Send SMS", ""); Intent smsIntent = new Intent(Intent.ACTION_VIEW); smsIntent.setData(Uri.parse("smsto:")); smsIntent.setType("vnd.android-dir/mms-sms"); smsIntent.putExtra("address" , new String ("01234")); smsIntent.putExtra("sms_body" , "Test "); try { startActivity(smsIntent); finish(); Log.i("Finished sending SMS...", ""); } catch (android.content.ActivityNotFoundException ex) { Toast.makeText(MainActivity.this, "SMS faild, please try again later.", Toast.LENGTH_SHORT).show(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
Im Anschluss wird der Inhalt sein res / layout / activity_main.xml Datei -
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Drag and Drop Example" android:id="@+id/textView" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:textSize="30dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Tutorials Point " android:id="@+id/textView2" android:layout_below="@+id/textView" android:layout_centerHorizontal="true" android:textSize="30dp" android:textColor="#ff14be3c" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageView" android:src="@drawable/abc" android:layout_marginTop="48dp" android:layout_below="@+id/textView2" android:layout_centerHorizontal="true" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Compose SMS" android:id="@+id/button" android:layout_below="@+id/imageView" android:layout_alignRight="@+id/textView2" android:layout_alignEnd="@+id/textView2" android:layout_marginTop="54dp" android:layout_alignLeft="@+id/imageView" android:layout_alignStart="@+id/imageView" /> </RelativeLayout>
Im Anschluss wird der Inhalt sein res / Werte / strings.xml zwei neue Konstanten definieren -
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">tutorialspoint</string> <string name="action_settings">Settings</string> </resources>
Im Folgenden ist der Standardinhalt der AndroidManifest.xml -
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.tutorialspoint" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="22" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.tutorialspoint.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Lasst uns versuchen, Ihre Lauf tutorialspoint Anwendung. Ich nehme an, Sie Ihre aktuelle Android-Gerät mit dem Computer verbunden haben. Um die App vom Android-Studio, öffnen Sie eine der Aktivität Dateien Ihres Projekt auszuführen, und klicken Sie auf Ausführen-Symbol in der Symbolleiste. Vor dem Start der Anwendung wird Android Studio Display folgende Fenster, um eine Option, wo Sie Ihre Android-Anwendung ausgeführt werden soll.
Wählen Sie Ihr Mobilgerät als Option und prüfen Sie dann Ihr mobiles Gerät, das folgende Fenster anzeigt:
Jetzt benutzen Compose SMS-Taste, um zu starten Android eingebaute SMS-Clients, die unten gezeigt wird:
Sie können einen der vorgegebenen Standardfelder ändern und schließlich nutzen SMS Knopf, um Ihre SMS an die genannten Empfänger zu senden.
0 التعليقات:
Kommentar veröffentlichen