- 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 :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.0102030405060708091011121314151617publicvoidsendSmsByManager() {try{// Mengambil default instance dari SmsManagerSmsManager smsManager = SmsManager.getDefault();smsManager.sendTextMessage(phoneNumber.getText().toString(),null,smsBody.getText().toString(),null,null);Toast.makeText(getApplicationContext(),"SMS Berhasil Dikirim!",Toast.LENGTH_LONG).show();}catch(Exception ex) {Toast.makeText(getApplicationContext(),"Pengiriman SMS Gagal...",Toast.LENGTH_LONG).show();ex.printStackTrace();}} - Menggunakan Send To Intent
Yang kedua adalah dengan menggunakan Intent Send To: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.010203040506070809101112131415publicvoidsendSmsBySIntent() {// menambahkan phone number ke URI dataUri uri = Uri.parse("smsto:"+ phoneNumber.getText().toString());// membuat intent baru dengan ACTION_SENDTOIntent smsSIntent =newIntent(Intent.ACTION_SENDTO, uri);// menambahkan isi SMS pada field sms_bodysmsSIntent.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();}} - 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.010203040506070809101112131415161718publicvoidsendSmsByVIntent() {Intent smsVIntent =newIntent(Intent.ACTION_VIEW);// hanya akan membuka aplikasi SMS/MMS default di AndroidsmsVIntent.setType("vnd.android-dir/mms-sms");// menambahkan nomor telepon dan isi SMS otomatissmsVIntent.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();}}
Untuk contoh aplikasinya, kita bisa memulai dengan membuat project Android di Android Studio terlebih dahulu.
Kemudian pada kelas MainActivity.java atau kelas utama di project kalian, replace dengan kode berikut :
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
| package id.web.twoh.smssampleapp;import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.telephony.SmsManager;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity { private EditText phoneNumber; private EditText smsBody; private Button smsManagerBtn; private Button smsSendToBtn; private Button smsViewBtn; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); phoneNumber = (EditText) findViewById(R.id.phoneNumber); smsBody = (EditText) findViewById(R.id.smsBody); smsManagerBtn = (Button) findViewById(R.id.smsManager); smsSendToBtn = (Button) findViewById(R.id.smsSIntent); smsViewBtn = (Button) findViewById(R.id.smsVIntent); smsManagerBtn.setOnClickListener(new OnClickListener() { public void onClick(View view) { sendSmsByManager(); } }); smsSendToBtn.setOnClickListener(new OnClickListener() { public void onClick(View view) { sendSmsBySIntent(); } }); smsViewBtn.setOnClickListener(new OnClickListener() { public void onClick(View view) { sendSmsByVIntent(); } }); } public void sendSmsByManager() { try { // Get the default instance of the SmsManager SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage(phoneNumber.getText().toString(), null, smsBody.getText().toString(), null, null); Toast.makeText(getApplicationContext(), "SMS Berhasil Dikirim!", Toast.LENGTH_LONG).show(); } catch (Exception ex) { Toast.makeText(getApplicationContext(),"Pengiriman SMS Gagal...", Toast.LENGTH_LONG).show(); ex.printStackTrace(); } } public void sendSmsBySIntent() { // add the phone number in the data Uri uri = Uri.parse("smsto:" + phoneNumber.getText().toString()); Intent smsSIntent = new Intent(Intent.ACTION_SENDTO, uri); // add the message at the sms_body extra field 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(); } } 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(); } }} |
Kalian bisa mengganti nama package-nya sesuai dengan nama package pada aplikasi kalian. Setelah itu, untuk layout-nya masukkan kode berikut pada file activity_main.xml :
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
| <?xml version="1.0" encoding="utf-8"?> android:id="@+id/linearLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/bg_main" android:orientation="vertical" > <TextView android:id="@+id/text" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Lengkapi isian di bawah untuk mengirim SMS" android:textAppearance="?android:attr/textAppearanceMedium" /> <EditText android:id="@+id/phoneNumber" android:layout_width="fill_parent" android:layout_height="wrap_content" android:ems="10" android:hint="contoh: 082132312123" android:inputType="phone" /> <EditText android:id="@+id/smsBody" android:layout_width="fill_parent" android:layout_height="80dp" android:layout_marginBottom="30dp" android:hint="Isi SMS..." /> <Button android:id="@+id/smsManager" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Kirim SMS lewat SMS Manager" /> <Button android:id="@+id/smsSIntent" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Kirim SMS lewat SENDTO" /> <Button android:id="@+id/smsVIntent" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Kirim SMS lewat VIEW" /></LinearLayout> |
1
| <uses-permission android:name="android.permission.SEND_SMS" /> |

0 komentar:
Posting Komentar