Android Sende SMS

I Android, kan du bruke SmsManager API eller enheter Innebygd SMS søknad å sende SMS-tallet. I denne opplæringen viser vi deg to grunnleggende eksempler for å sende SMS-melding −

SmsManager API
SmsManager smsManager = SmsManager.getDefault (); smsManager.sendTextMessage ("phoneNo", null, "sms-melding", null, null);

Innebygd SMS søknad
Intent sendIntent = new Intent (Intent.ACTION_VIEW); sendIntent.putExtra ("sms_body", "default innhold "); . sendIntent.setType ("vnd.android-dir /mms-sms"); startActivity (sendIntent);

Selvfølgelig, både behovet SEND_SMS tillatelse
< bruker-tillatelse android: navn = "android.permission.SEND_SMS" />

Bortsett fra de ovennevnte metoden, er det få andre viktige funksjoner som er tilgjengelige i SmsManager klasse. Disse metodene er listet nedenfor −
Sr.No.Method & Description1 Arraylist < String > divideMessage (String tekst)

Denne metoden skiller en meldingstekst i flere fragmenter, ingen større enn den maksimale SMS meldingsstørrelse.
2 statisk SmsManager getDefault ()

Denne metoden brukes til å få standardforekomsten av SmsManager
3 ugyldig sendDataMessage (String destinationAddress, String scAddress, kort destinationPort, byte [] data, PendingIntent sentIntent, PendingIntent deliveryIntent)

Denne metoden brukes å sende en databasert SMS til en spesifikk applikasjon port
4 void sendMultipartTextMessage (String destinationAddress, String scAddress, Arraylist < String > deler, Arraylist < PendingIntent > sentIntents, Arraylist < PendingIntent > deliveryIntents).
< p> Send en flerdelt tekstbasert SMS.
5 void sendTextMessage (String destinationAddress, String scAddress, String tekst, PendingIntent sentIntent, PendingIntent deliveryIntent)

Send en tekstbasert SMS.

Eksempel

Følgende eksempel viser deg i praksis hvordan du bruker SmsManager objekt for å sende en SMS til den gitte mobilnummer.
Å eksperimentere med dette eksempelet, vil du trenge selve Mobile enheter utstyrt med nyeste Android OS, ellers vil du måtte slite med emulator som kanskje ikke vil work.StepDescription1You bruke Android Studio IDE å lage en Android-applikasjon, og gi det et navn som tutorialspoint
under en pakke com.example.tutorialspoint
. Mens du oppretter dette prosjektet, må du Target SDK Hotell og kompilere med
på den nyeste versjonen av Android SDK til å bruke høyere nivåer av APIs.2Modify src /MainActivity.java
fil og legge nødvendig kode for å ta seg av å sende email.3Modify layout XML fil res /layout /activity_main.xml
legge noen GUI-komponent hvis nødvendig. Jeg legger til en enkel GUI for å ta mobilnummer og SMS skal sendes og en enkel knapp for å sende SMS.4No trenger å definere standard string konstanter på res /verdier /strings.xml. Android studio tar seg av standard constants.5Modify AndroidManifest.xml
som vist below6Run programmet til å lansere Android emulator og kontrollere resultatet av de endringer som er gjort i programmet.

Følgende er innholdet i den modifiserte hoved aktivitet filen src /com.example.tutorialspoint /MainActivity.java
pakken 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 strekker Aktivitet {Button sendBtn; EditText txtphoneNo; EditText txtMessage; Override Beskyttet 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 (ny View.OnClickListener () {public void onClick (Vis visning) {sendSMSMessage ();}}); } Beskyttet void sendSMSMessage () {Log.i ("Send SMS", ""); String phoneNo = txtphoneNo.getText () toString ().; String melding = txtMessage.getText () toString ().; try {SmsManager smsManager = SmsManager.getDefault (); smsManager.sendTextMessage (phoneNo, null, melding, null, null); Toast.makeText (getApplicationContext (), "SMS sendt.", Toast.LENGTH_LONG) .vis (); } Catch (Exception e) {Toast.makeText (getApplicationContext (), "SMS faild, vennligst prøv igjen.", Toast.LENGTH_LONG) .vis (); e.printStackTrace (); }}Override Public boolean onCreateOptionsMenu (Meny menyen) {//Blås menyen; dette legger til elementer i handlingsfeltet hvis det er til stede. . getMenuInflater () blåse (R.menu.main, menyen); return true; }}

Etter vil være innholdet i res /layout /activity_main.xml
file:
< RelativeLayout xmlns: android = "http://schemas.android.com/apk/res /android "xmlns: verktøy =" 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 "verktøy: kontekst =" MainActivity "> < TextView android: id = "+ id /textView1" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Sende SMS Eksempel" android: layout_alignParentTop = "true" android: layout_centerHorizontal = "true "android: Tekststørrelse =" 30dp "/> < TextView android: id = "+ id /textView2" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Tutorials point" android: textcolor = "# ff87ff09" android: Tekststørrelse = "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 = "@ teikne /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 = "Angi telefonnummer" android: Telefonnummer = "true" android: textColorHint = "@ farge /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 = "@ farge /abc_primary_text_material_dark" android: layout_alignRight = "+ id /imageButton" android: layout_alignEnd = "+ id /imageButton" android: hint = "Skriv 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 >

Etter vil være innholdet i res /verdier /strings.xml
å definere to nye konstanter og minus;
<? xml version = "1.0" encoding = "UTF-8" >? < resources > < string name = "APP_NAME" > tutorialspoint < /string > < string name = "action_settings" > Innstillinger < /string > < /ressurser >

Følgende er innholdet mislighold av AndroidManifest.xml Bilde:?
< xml version = "1.0 "encoding =" utf-8 "> < manifest xmlns:? android =" http://schemas.android.com/apk/res/android "pakken =" com.example.tutorialspoint "android: version =" 1 "android: versjon =" 1.0 "> < bruker-SDK android: minSdkVersion = "8" android: targetSdkVersion = "22" /> < bruker-tillatelse android: name = "android.permission.SEND_SMS" /> < søknad android: allowBackup = "true" android: icon = "@ teikne /ic_launcher" android: label = "@ streng /APP_NAME" android: tema = "@ stil /AppTheme" > < aktivitet android: name = "com.example.tutorialspoint.MainActivity" android: label = "@ streng /APP_NAME" > < intent-filter > < handling android: name = "android.intent.action.MAIN" /> < kategori android: name = "android.intent.category.LAUNCHER" /> < /intent-filter > < /aktivitets > < /søknad > < /manifest >

La oss prøve å kjøre ditt tutorialspoint
søknad. Jeg antar at du har koblet den faktiske Android Mobile-enhet med datamaskinen. For å kjøre programmet fra Android studio, åpne en av prosjektets aktivitets filer, og klikk Kjør ikonet fra verktøylinjen. Før du starter programmet, vil Android studio installatøren vise følgende vindu for å velge et alternativ hvor du vil kjøre Android-applikasjon.

Nå kan du legge inn et ønsket mobilnummer og en tekstmelding som skal sendes på dette nummeret. Til slutt klikker du på Send SMS
knappen for å sende SMS. Sørg for at GSM /CDMA-tilkoblingen fungerer fint å levere SMS til mottakeren.

Du kan ta en rekke SMS atskilt med komma og deretter inne i programmet må du analysere dem inn i en matrise streng og endelig kan du bruke en løkke til å sende melding til alle de gitte tallene. Det er hvordan du kan skrive din egen SMS klient. Neste avsnitt vil vise deg hvordan du bruker eksisterende SMS klienten til å sende SMS.

Bruk av innebygde Intent å sende SMS

Du kan bruke Android Intent å sende SMS ved å kalle innebygde SMS-funksjonalitet av Android. Følgende avsnitt forklarer ulike deler av vårt Intent objekt som kreves for å sende en SMS

Intent Object -. Tiltak for å sende SMS

Du vil bruke ACTION_VIEW
handling for å starte en SMS-klient installert på din Android-enhet. Følgende er enkel syntaks å skape en intensjonsavtale med ACTION_VIEW handling
Intent smsIntent = new Intent (Intent.ACTION_VIEW);
Intent Object - data /type til å sende SMS

For å sende en SMS må du spesifisere SMSTO:
som URI hjelp setData () metode og datatype vil være til vnd.android-dir /mms-sms
hjelp setType () metode som følger −
smsIntent.setData(Uri.parse("smsto:"));smsIntent.setType("vnd.android-dir/mms-sms");
Intent Objekt - ekstra til å sende SMS
har

Android innebygd støtte for å legge til telefonnummeret og tekstmelding for å sende en SMS som følger −
smsIntent.putExtra ("adresse", new String ("0123456789; 3393993300 ")); smsIntent.putExtra (" sms_body "," Test SMS til Angilla "); Her adresse og sms_body store og små bokstaver og bør spesifiseres i små tegn bare. Du kan angi mer enn ett nummer i enkelt streng, men atskilt med semikolon (;).
Eksempel

Følgende eksempel viser deg i praksis hvordan du bruker Intent objekt å lansere SMS klienten til å sende en SMS til de gitte mottakere.
Å eksperimentere med dette eksempelet, vil du trenge selve Mobile-enhet utstyrt med nyeste Android OS, ellers vil du måtte slite med emulator som kanskje ikke vil work.StepDescription1You bruke Android studio IDE å lage en Android-applikasjon, og gi det et navn som tutorialspoint
under en pakke com.example. tutorialspoint
. Mens du oppretter dette prosjektet, må du Target SDK Hotell og kompilere med
på den nyeste versjonen av Android SDK til å bruke høyere nivåer av APIs.2Modify src /MainActivity.java
fil og legge nødvendig kode for å ta seg av å sende SMS.3Modify layout XML fil res /layout /activity_main.xml
legge noen GUI-komponent hvis nødvendig. Jeg legger til en enkel knapp for å starte SMS Client.4No trenger å definere standard constants.Android studio tar seg av standard constants.5Modify AndroidManifest.xml
som vist below6Run programmet til å lansere Android emulator og verifisere resultatet av de endringene som er gjort i søknaden

Følgende er innholdet i den modifiserte hovedaktivitet filen src /com.example.tutorialspoint /MainActivity.java
pakken 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 strekker Aktivitet {Override beskyttet void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); Button startBtn = (knappen) findViewById (R.id.button); startBtn.setOnClickListener (ny View.OnClickListener () {public void onClick (Vis visning) {SendSMS ();}}); } Beskyttet 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 ("adresse", new String ("01234")); smsIntent.putExtra ("sms_body", "test"); try {startActivity (smsIntent); finish (); Log.i ("Ferdig sende SMS ...", ""); } Catch (android.content.ActivityNotFoundException ex) {Toast.makeText (MainActivity.this, "SMS faild, vennligst prøv igjen senere.", Toast.LENGTH_SHORT) .vis (); }}Override Public boolean onCreateOptionsMenu (Meny menyen) {//Blås menyen; dette legger til elementer i handlingsfeltet hvis det er til stede. . getMenuInflater () blåse (R.menu.main, menyen); return true; }}

Etter vil være innholdet i res /layout /activity_main.xml
fil −
< RelativeLayout xmlns: android = "http://schemas.android.com/apk/res /Android "xmlns: verktøy =" 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 "verktøy: kontekst =" MainActivity ">. < TextView android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Dra og slipp Eksempel" android: id = "+ id /textView" android: layout_alignParentTop = "true" android: layout_centerHorizontal = " true "android: Tekststørrelse =" 30dp "/> < TextView android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Guider Point" android: id = "+ id /textView2" android: layout_below = "+ id /textView" android: layout_centerHorizontal = "true" android: Tekststørrelse = "30dp" android: textcolor = "# ff14be3c" /> < Imageview android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: id = "+ id /bildeVis" android: src = "@ teikne /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 = "Skriv SMS" android: id = "+ id /knapp" android: layout_below = "+ id /bildeVis" android: layout_alignRight = "+ id /textView2" android: layout_alignEnd = "+ id /textView2" android: layout_marginTop = "54dp" android: layout_alignLeft = "+ id /bildeVis" android: layout_alignStart = "+ id /bildeVis" /> < /RelativeLayout >

Etter vil være innholdet i res /verdier /strings.xml
å definere to nye konstanter og minus;
<? xml version = "1.0" encoding = "utf -8 ">? < resources > < string name = "APP_NAME" > tutorialspoint < /string > < string name = "action_settings" > Innstillinger < /string > < /ressurser >

Følgende er innholdet mislighold av AndroidManifest.xml

<? xml version = " 1.0 "encoding =" utf-8 "> < manifest xmlns:? android =" http://schemas.android.com/apk/res/android "pakken =" com.example.tutorialspoint "android: version =" en "android: versjon =" 1.0 "> < bruker-SDK android: minSdkVersion = "8" android: targetSdkVersion = "22" /> < søknad android: allowBackup = "true" android: icon = "@ teikne /ic_launcher" android: label = "@ streng /APP_NAME" android: tema = "@ stil /AppTheme" > < aktivitet android: name = "com.example.tutorialspoint.MainActivity" android: label = "@ streng /APP_NAME" > < intent-filter > < handling android: name = "android.intent.action.MAIN" /> < kategori android: name = "android.intent.category.LAUNCHER" /> < /intent-filter > < /aktivitets > < /søknad > < /manifest >

La oss prøve å kjøre ditt tutorialspoint
søknad. Jeg antar at du har koblet den faktiske Android Mobile-enhet med datamaskinen. For å kjøre programmet fra Android studio, åpne en av prosjektets aktivitets filer, og klikk Kjør ikonet fra verktøylinjen. Før du starter programmet, vil Android studio vise følgende vindu for å velge et alternativ hvor du vil kjøre Android-applikasjon

Velg den mobile enheten som et alternativ, og deretter sjekke den mobile enheten som vil vise følgende skjermbilde:.

Nå bruker Compose SMS
knappen for å lansere Android innebygde SMS-klienter som er vist nedenfor:

Du kan endre noen av de gitte standardfeltene og til slutt bruke sende SMS-knapp å sende SMS til nevnte mottaker. Anmeldelser