Tutorial kali ini kita akan belajar membuat sebuah aplikasi Android yang mampu mengirim sms langsung dari smartphone. Aplikasi ini akan kita buat menggunakan script Delphi XE8 yang berbasis bahasa Pascal. Berhubung sampai dengan versi Delphi XE8 belum ada komponen khusus yang dapat mengirim SMS, maka kita harus menulis sendiri script-nya. Kali ini kita akan memanfaatkan SMS Manager, yakni framework bawaan dalam sistem operasi Android yang bertugas menangani SMS yang masuk dan keluar. Jadi script kita nantinya cukup memerintahkan SMS Manager untuk mengirim (atau menerima) SMS, tidak lagi langsung menangani SMS menggunakan perintah AT COMMAND. Kalau misalnya kita menggunakan AT Command sebenarnya bisa aja, tapi nantinya akan langsung menghubungi hardware layer (modem).
Untuk menggunakan SMS Manager melalui Delphi XE8, kita harus menggunakan JNI (Java Native Interface) Bridge. JNI ini adalah semacam library penghubung antara Delphi yang menggunakan bahasa Pascal dengan Android yang native-nya menggunakan bahasa Java. Tambahkan unit-unit JNI Bridge berikut di bawah statement ‘uses’ :
Androidapi.JNI.GraphicsContentViewText,
Androidapi.JNI.Net,
Androidapi.JNI.JavaTypes,
Androidapi.JNI.Telephony
Berikutnya, buat semacam prosedur khusus untuk mengirim SMS sebagai berikut :
procedure KirimSMS (no_tujuan,pesan:string); var smsManager: JSmsManager; smsTo: JString; begin  smsManager:= TJSmsManager.JavaClass.getDefault;  smsTo:=StringToJString(no_tujuan);  smsManager.sendTextMessage(smsTo, nil, StringToJString(pesan), nil, nil); end;
Perhatikan pada baris [3] kita menciptakan sebuah instance baru dengan nama smsManager dari kelas JSmsManager. Melalui instance inilah kita dapat mengakses semua fungsionalitas SMS Manager untuk menangani SMS (misalnya untuk mengirim SMS pada baris [9] menggunakan method ‘sendTesxtMessage’).
Selanjutnya tinggal kita panggil procedure ‘KirimSMS’ di atas dengan sintaks:
KirimSMS (no_tujuan, pesan);
Untuk lebih jelasnya, ambil komponen TButton dari Component Pallete dan isikan event handler-nya dengan script di bawah:
procedure TForm1.Button1Click(Sender: TObject); begin  KirimSMS ('+6281xxxxxxx','ini sms dr android - delphi'); end;
Terakhir, Anda harus mendefinisikan ‘User Permission’ untuk mengirim SMS (android.permission.SEND_SMS) di file Android Manifest. Anda dapat langsung menambahkan user permission tersebut di file Android Manifest (<uses-permission android:name=”android.permission.SEND_SMS” />) atau untuk lebih mudahnya melalui menu Project-Options-User Permission. Kemudian cari dan centang pilihan ‘Send SMS’
Jalankan program langsung ke smartphone Android (tekan F9). Pastikan usb driver untuk smartphone Anda sudah terinstal ya, dan smartphone Anda sudah terbaca di kotak ‘target device’ di IDE Delphi XE8. Berikut ini adalah tampilan contoh aplikasi mengirim SMS di Android mengggunakan Delphi XE8:
Begitu Anda tekan tombol ‘Send SMS’ maka aplikasi akan langsung mengirim SMS ke no +6281xxxxxxx sesuai script di atas
Sekian tutorial kali ini, semoga bermanfaat. Untuk tutorial membaca SMS di Android dengan Delphi XE8 akan saya tulis kemudian. Keep stay tune on my blog 🙂
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com
Pernah mencoba MQTT Subscriber message dengan Delphi mas ?
udah mas, tp pake third party MQTT provider kayak Dweet gitu. Kl yg murni MQTT msh blm berhasil. Kalo pake Java udah bisa mas
Assalamualaikum mas, gimana kalo untuk menerima pesan di delphi xe8? mohon bantuannya.
sekian dan thanks.
wass wr wb. Kurang lebih sama prosesnya, kapan2 dibikinkan tutorialnya
trus syntax bagian mana yg beda,? soalnya mau di jadiin referensi skripsi mas..
dlam waktu dkt ni bisa gak?
Thanks.
Bisa minta link download project nya gak mas
Jika menggunakan AT-Command bagaimana cara mendeteksi port modem android smartphone (Lenovo a2010-a) ? saya sudah install USB driver yang sesuai tetapi tidak menemukan port modemnya.
Trims
ini mau ngapain? kirim sms? kl benar yg diinginkan adl mau kirim sms, sy mau nanya dulu, programnya ada dimana? di hp-nya atau di laptop?
mas aji, klo ada pesan error undeclared identifier ‘StringToJString’ itu masalah dimana ya mas?.. saya coba tekan F1 untuk cari di help nya ga ketemu
sudah solved mas,..
tinggal tambahkan unit Androidapi.Helpers;
sip mas, semoga bermanfaat untuk pembaca blog yg lain
ini koding receive nya aman
Ini koding cara receive sms nya ada di mana