- 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 :0102030405060708091011121314151617public
void
sendSmsByManager() {
try
{
// Mengambil default instance dari 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();
}
}
- Menggunakan Send To Intent
Yang kedua adalah dengan menggunakan Intent Send To:010203040506070809101112131415public
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();
}
}
- 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.010203040506070809101112131415161718public
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();
}
}
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