Tutorial Mengirim SMS dengan Android Studio

Saat ini sudah banyak aplikasi Android yang menggunakan fitur SMS atau pesan singkat untuk berbagai keperluan, salah satu yang sering ditemui misalnya sebagai sarana verifikasi pengguna.  OS Android sendiri, karena mempunyai tingkat modularitas yang tinggi, sudah menyediakan interface dan kelas tertentu yang bisa kita gunakan apabila kita ingin mengintegrasikan layanan SMS ke dalam aplikasi yang kita buat.

Untuk dapat mengirim SMS lewat aplikasi Android buatan kita, ada tiga cara yang dapat dilakukan, yaitu menggunakan SMSManager, menggunakan smsto URI, dan menggunakan SMSView intent. Perbedaan di antara ketiga method tersebut akan dijelaskan di bawah ini :

Menggunakan SMSManager
Metode yang pertama adalah dengan menggunakan SMSManager, yaitu sebuah class khusus yang ada di OS Android yang dikhususkan untuk mengakses fitur-fitur SMS di Android. Kita bisa menggunakan kelas tersebut untuk mengirim sebuah SMS ke nomor yang dituju. Ketika menggunakan SMSManager, SMS akan langsung dikirim dari dalam aplikasi kita, tanpa membutuhkan aplikasi SMS lain. Kodenya kurang lebih sebagai berikut :

 

public void sendSmsBySIntent() {
    // menambahkan phone number ke URI data
    Uri uri = Uri.parse("smsto:" + phoneNumber.getText().toString());
    // membuat intent baru dengan ACTION_SENDTO
    Intent smsSIntent = new Intent(Intent.ACTION_SENDTO, uri);
    // menambahkan isi SMS pada field sms_body
    smsSIntent.putExtra("sms_body", smsBody.getText().toString());
    try{
        startActivity(smsSIntent);
    } catch (Exception ex) {
        Toast.makeText(MainActivity.this, "Pengiriman SMS Gagal...",
                Toast.LENGTH_LONG).show();
        ex.printStackTrace();
    }
}

Bisa dilihat, kode di atas sangatlah simple, kita hanya perlu memanggil satu method sendTextMessage(), dan kemudian memberikan parameter berupa nomor telepon tujuan, nomor telepon pengirim, isi SMS, intent yang akan dieksekusi apabila SMS berhasil terkirim/gagal, dan intent yang akan dieksekusi apabila SMS telah diterima. Namun untuk tutorial ini kita hanya perlu mengisikan nomor telepon tujuan, dan isi SMS saja.

Menggunakan Send To Intent
Yang kedua adalah dengan menggunakan Intent Send To:

 
public void sendSmsBySIntent() {
    // menambahkan phone number ke URI data
    Uri uri = Uri.parse("smsto:" + phoneNumber.getText().toString());
    // membuat intent baru dengan ACTION_SENDTO
    Intent smsSIntent = new Intent(Intent.ACTION_SENDTO, uri);
    // menambahkan isi SMS pada field sms_body
    smsSIntent.putExtra("sms_body", smsBody.getText().toString());
    try{
        startActivity(smsSIntent);
    } catch (Exception ex) {
        Toast.makeText(MainActivity.this, "Pengiriman SMS Gagal...",
                Toast.LENGTH_LONG).show();
        ex.printStackTrace();
    }
}

Dengan menggunakan Intent SENDTO, kita akan mengirim SMS menggunakan aplikasi eksternal. Apabila terdapat lebih dari 1 aplikasi SMS pada handphone (misal, Hangouts, SMS), maka kita akan diberikan pilihan aplikasi yang digunakan untuk mengirim SMS. Namun apabila hanya ada satu aplikasi SMS di HP, maka kita akan langsung masuk ke default SMS aplikasi di Android dan mengirim SMS dari sana.

Menggunakan VIEW Intent
Cara yang ketiga adalah menggunakan VIEW Intent, hampir sama dengan cara nomor 2. Hanya saja dengan menggunakan View Intent kita akan langsung diarahkan ke aplikasi SMS default kepunyaan Android, dan kemudian mengirim SMS dari situ.

 

public void sendSmsByVIntent() {
 
    Intent smsVIntent = new Intent(Intent.ACTION_VIEW);
    // hanya akan membuka aplikasi SMS/MMS default di Android
    smsVIntent.setType("vnd.android-dir/mms-sms");
 
    // menambahkan nomor telepon dan isi SMS otomatis
    smsVIntent.putExtra("address", phoneNumber.getText().toString());
    smsVIntent.putExtra("sms_body", smsBody.getText().toString());
    try{
        startActivity(smsVIntent);
    } catch (Exception ex) {
        Toast.makeText(MainActivity.this, "Pengiriman SMS Gagal...",
                Toast.LENGTH_LONG).show();
        ex.printStackTrace();
    }
 
}
Share:

0 comments:

Post a Comment

Powered by Blogger.

Online

files

Mengenai Saya

Follow by Email

Social Icons

twitterfacebookgoogle pluslinkedinrss feedemail