Najenostavnejši način za pošiljanje SMS sporočil iz Kotlina je uporaba vgrajenega HTTP/Rest SMS API-ja
Ozeki SMS Gateway. Ko uporabljate ta API, boste SMS sporočila pošiljali z
izdajo HTTP Post zahteve do SMS prehoda. HTTP Post zahteva bo
vsebovala sporočilo v json formatu. SMS prehod bo
poslal to SMS sporočilo prejemnikovemu telefonu in vrnil HTTP 200 OK odgovor
na vašo zahtevo. (Slika 1)
Slika 1 - Kako poslati več SMS sporočil iz Kotlina
Spodnji vzorec kode Kotlin za SMS prikazuje, kako lahko pošljete več SMS sporočil z uporabo
http rest SMS API-ja Ozeki SMS Gateway z uporabo knjižnice Kotlin Ozeki.Libs.Rest.
Ta knjižnica vam je na voljo brezplačno in jo lahko uporabljate ter spreminjate
v katerem koli od svojih projektov.
MainActivity.kt
package send.multiple.sms
import Ozeki.Libs.Rest.Configuration
import Ozeki.Libs.Rest.Message
import Ozeki.Libs.Rest.MessageApi
import android.os.Bundle
import android.text.method.ScrollingMovementMethod
import android.widget.ArrayAdapter
import androidx.appcompat.app.AppCompatActivity
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val inputToAddress:android.widget.EditText = findViewById(R.id.inputToAddress)
val inputMessage:android.widget.EditText = findViewById(R.id.inputMessage)
val btnAddMessage:android.widget.Button = findViewById(R.id.btnAddMessage)
val btnSendRequest:android.widget.Button = findViewById(R.id.btnSendRequest)
val listOfMessages:android.widget.ListView = findViewById(R.id.listView)
val logBox:android.widget.TextView = findViewById(R.id.logBox)
logBox.movementMethod = ScrollingMovementMethod()
val configuration = Configuration(
username = "http_user",
password = "qwe123",
apiurl = "http://10.0.2.2:9509/api"
)
val api = MessageApi(configuration)
val messages : ArrayList<Message> = arrayListOf()
val messages_label : ArrayList<String> = arrayListOf()
val arrayAdapter = ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, messages_label)
listOfMessages.adapter = arrayAdapter
btnAddMessage.setOnClickListener {
if (inputToAddress.text.toString() != "" && inputMessage.text.toString() != "" ) {
val msg = Message()
msg.ToAddress = inputToAddress.text.toString()
msg.Text = inputMessage.text.toString()
inputToAddress.text.clear()
inputMessage.text.clear()
messages_label.add(msg.toString())
arrayAdapter.notifyDataSetChanged()
messages.add(msg)
} else {
logBox.text = String.format("%s\nIzpolniti morate vsa polja!", logBox.text)
}
}
btnSendRequest.setOnClickListener {
messages_label.clear()
arrayAdapter.notifyDataSetChanged()
GlobalScope.launch(Dispatchers.IO) {
val response = api.Send(messages)
messages.clear()
logBox.text = String.format("%s\n%s", logBox.text, response.toString())
}
}
}
}
Uporabite lahko razred Message za ustvarjanje
SMS sporočil in razred MessageApi za pošiljanje SMS sporočil na SMS prehod.
SMS prehod bo vaše sporočilo posredoval v mobilno omrežje prek brezžične povezave
ali prek interneta.
Izvorna koda, razložena v tem članku, je na voljo za brezplačen prenos, uporabo in spreminjanje. Prenos:SendMultipleSms.kt.zip (150Kb)
Kaj je v datoteki SendMultipleSms.kt.zip?
Datoteka SendMultipleSms.kt.zip vsebuje primer projekta, ki vključuje
knjižnico Ozeki.Libs.Rest. S to knjižnico lahko pošiljate, brišete,
označujete in prejemate SMS sporočila z ustvarjanjem MessageApi in uporabo metod Send(),
Delete(), Mark() in Receive(). (Slika 2)
Slika 2 - Map SendMultipleSms.kt
Kako poslati več SMS sporočil iz Kotlina (Hitri koraki)
Za pošiljanje več SMS sporočil iz Kotlina:
Namestite Ozeki SMS Gateway
Povežite Ozeki SMS Gateway z mobilnim omrežjem
Pošljite testno SMS sporočilo iz Ozeki GUI
Ustvarite uporabnika HTTP SMS API
Android Studio
Prenesite zgornji primer projekta
Ustvarite SMS z ustvarjanjem novega objekta Message
Ustvarite API za pošiljanje vaših sporočil
Uporabite metodo Send za pošiljanje vaših sporočil
Preberite odzivno sporočilo na konzoli
Preverite dnevnike v SMS gatewayu
Namestite Ozeki SMS Gateway in ustvarite uporabnika HTTP API
Ko je okolje pripravljeno, lahko zaženete svojo Kotlin kodo.
URL HTTP API za pošiljanje SMS iz Kotlina
Za pošiljanje več SMS sporočil iz Kotlina mora vaš Kotlin poslati HTTP zahtevo na SMS gateway.
API URL je prikazan spodaj. Upoštevajte, da je treba IP naslov (127.0.0.1)
zamenjati z IP naslovom vašega SMS gatewaya. Če je Ozeki SMS Gateway nameščen
na istem računalniku, kjer teče JavaScript SMS aplikacija,
je to lahko 127.0.0.1. Če je nameščen na drugem računalniku, mora
biti to IP naslov tega računalnika.
http://127.0.0.1:9509/api?action=rest
HTTP avtentikacija za pošiljanje več SMS sporočil iz Kotlina
Za avtentikacijo Kotlin SMS odjemalca morate poslati uporabniško ime in geslo v
base64 kodiranem nizu na strežnik v HTTP zahtevi. Uporabljen format je: base64(uporabniško_ime+":"+geslo).
V Kotlinu lahko za to kodiranje uporabite naslednjo kodo:
var usernamePassword = "%s:%s".format(username, password)
return "Basic %s".format(Base64.getEncoder().encodeToString(usernamePassword.toByteArray()))
Na primer, če kodirate uporabniško ime 'http_user' in geslo 'qwe123', boste
prejeli naslednji base64 kodiran niz: aHR0cF91c2VyOnF3ZTEyMw==. Za pošiljanje
HTTP glava zahteve za pošiljanje SMS iz Kotlina
Za pošiljanje SMS sporočil morate vključiti naslednje vrstice kot glave v
HTTP zahtevo. Upoštevajte, da vključujemo vsebinski tip in glavo Authorization.
Za oddajo SMS bo vaša Kotlin aplikacija poslala HTTP zahtevo, podobno
spodnji. Upoštevajte, da ta zahteva vsebuje del HTTP glave in
del HTTP telesa. HTTP telo je JSON kodiran podatkovni niz. Vsebuje
prejemnikovo številko in besedilo sporočila.
Ko SMS prehod prejme to zahtevo, bo ustvaril HTTP odziv.
HTTP odziv bo vseboval statusno kodo, ki bo pokazala, ali je bila zahteva za oddajo SMS-a
uspešna ali ne. Prav tako bo vrnil strukturo, kodirano v JSON,
ki vam bo zagotovila koristne podrobnosti o oddaji sporočila.
Kako poslati več SMS-ov iz Kotlina z uporabo SMS API-ja in zgornjega primera projekta (Video vadnica)
Ta video vam pokaže, kako prenesti in uporabiti projekt SendMultipleSms.kt. Ko
odprete primer projekta, boste morda opazili, da obstaja paket, imenovan
Ozeki.Libs.Rest. To je paket, ki vsebuje MessageApi in vse, kar potrebujete za
pošiljanje več SMS-ov s Kotlinom.
Kako preveriti, ali je SMS sprejel HTTP uporabnik
Po oddaji SMS-a je dobro preveriti vaš SMS prehod,
da vidite, kaj je prejel. Dnevnik lahko preverite tako, da odprete podrobnosti HTTP uporabnika
iz konzole za upravljanje Ozeki SMS prehoda. Na koncu zgornjega videa
lahko vidite, kako preveriti, ali je zahteva bila prejeta s strani http_user.
(Slika 3)
Slika 3 - Projekt SendMultipleSms.kt v Android Studiu
Kako izgleda uporaba aplikacije na virtualnem telefonu
Kot lahko vidite na Sliki 4, lahko s aplikacijo pošljete več SMS sporočil hkrati.
Po pošiljanju sporočil lahko vidite dnevnik po besedilu sporočila.
Tam lahko dobite več informacij o poslanih sporočilih.
Obvestilo vam bo pokazalo, koliko od vseh poslanih sporočil je bilo uspešno poslanih in koliko jih je spodletelo.
(Slika 4)
Slika 4 - Primer aplikacije SendMultipleSms pred in po pošiljanju sporočil
Kako dodati Ozeki.Libs.Rest v svoj projekt
Knjižnico Ozeki.Libs.Rest lahko brezplačno prenesete, uporabljate in spreminjate. Prenos:Ozeki.Libs.Rest.kt.zip (7.66Kb)
Če se odločite, da boste svojo aplikacijo ustvarili sami le s knjižnico Ozeki.Libs.Rest,
je nekaj stvari, ki jih morate spremeniti v svoji osnovni aplikaciji.
Za uporabo knjižnice Ozeki.Libs.Rest jo morate postaviti v mapo java
glavnega imenika
V naslednjem videu vam bom pokazal, kako prenesti in dodati knjižnico Ozeki.Libs.Rest
v svoj projekt.
Odvisnosti
Pomembno je omeniti, da ima knjižnica Ozeki.Libs.Rest nekaj
odvisnosti. Za njeno uporabo morate te odvisnosti
dodati v Gradle Scripts.
Koda 1 - Seznam odvisnosti, ki jih morate vključiti.
Dodajanje odvisnosti (Video vadnica)
V naslednjem videoposnetku se boste naučili, kako dodati prej omenjene odvisnosti v vaš projekt.
Začelo se bo s kopiranjem kode in vas popelje vse do delujočih odvisnosti.
Video je dolg le 53 sekund, vsebuje pa vse potrebne korake za dokončanje postopka.
To vadnico lahko brez težav sledite.
Dostop do interneta
Da bo vaša aplikacija lahko pošiljala
HTTP zahteve, morate omogočiti, da se lahko
poveže z internetom.
V naslednjem videoposnetku vam bom pokazal, kako omogočiti dostop do interneta
za vašo aplikacijo v Kotlinu.
Koda 2 - Za omogočanje dostopa do interneta za vašo aplikacijo v Kotlinu.
android:usesCleartextTraffic="true"
Koda 3 - Za omogočanje pošiljanja HTTP zahtev
Dodajanje internetne povezave v projekt (Video vadnica)
Obe vrstici morate dodati v datoteko AndroidManifest.xml.
V naslednjem videoposnetku vam bom pokazal, kam naj postavite zgornjo kodo.
Obe vrstici morate dodati v datoteko AndroidManifest.xml.
Video se bo začel s kopiranjem kode in vas popelje do delujoče internetne povezave.
Ta video je zelo enostaven za sledenje, vsebuje pa vse potrebne korake na podroben način.
Za povzetek
Ta članek vam pomaga nastaviti HTTP SMS API v Ozeki SMS Gateway in uporabiti dano kodo v Kotlinu za pošiljanje več SMS sporočil.
Ta rešitev je idealna, če morate hitro posredovati pomembno sporočilo več strankam.
Koristno je uporabiti to rešitev v vaši aplikaciji v Kotlinu, da boste imeli visoko zmogljiv sistem za izmenjavo informacij.
Več informacij o tej temi najdete na spletni strani Ozeki.
Nadaljujte z branjem članka z naslovom Kako načrtovati SMS v Kotlinu.
Zdaj prenesite Ozeki SMS Gateway in začnite razvijati svoje poslovanje!