Mengirim pesan SMS dengan android bisa dengan dua cara. Dengan menggunakan SmsManager API atau Aplikasi Built-in SMS pada device untuk mengirim pesan SMS. dalam kesempatan kali ini akan membahas dua cara pengiriman SMS tersebut.
1. SmsManager API
SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage("0987654321", null, "isi pesan sms", null, null);
2. Built-in SMS application
Intent smsIntent = new Intent(Intent.ACTION_VIEW); smsIntent.setData(Uri.parse("smsto:")); smsIntent.setType("vnd.android-dir/mms-sms"); smsIntent.putExtra("address" , new String ("0987654321")); smsIntent.putExtra("sms_body" , "isi pesan sms"); startActivity(smsIntent);
dari kedua metode diatas diperlukan user permision untuk mengirim sms pada file AndroidManifest.xml
<uses-permission android:name="android.permission.SEND_SMS" />
1. Contoh penggunaan SmsManager
Buat project baru, pada file layout Activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/textViewPhoneNo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Enter Phone Number : " android:textAppearance="?android:attr/textAppearanceLarge" /> <EditText android:id="@+id/editTextPhoneNo" android:layout_width="fill_parent" android:layout_height="wrap_content" android:phoneNumber="true" > </EditText> <TextView android:id="@+id/textViewSMS" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Enter SMS Message : " android:textAppearance="?android:attr/textAppearanceLarge" /> <EditText android:id="@+id/editTextSMS" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="textMultiLine" android:lines="5" android:gravity="top" /> <Button android:id="@+id/buttonSend" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Send" /> </LinearLayout>
Pada Activity, file MainActivity.java
package id.web.sinaryuda.android.tutorial.kirimpesansms; import android.app.Activity; 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 { Button buttonSend; EditText textPhoneNo; EditText textSMS; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); buttonSend = (Button) findViewById(R.id.buttonSend); textPhoneNo = (EditText) findViewById(R.id.editTextPhoneNo); textSMS = (EditText) findViewById(R.id.editTextSMS); buttonSend.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String phoneNo = textPhoneNo.getText().toString(); String sms = textSMS.getText().toString(); try { SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage(phoneNo, null, sms, null, null); Toast.makeText(getApplicationContext(), "SMS Terkirim!", Toast.LENGTH_LONG).show(); } catch (Exception e) { Toast.makeText(getApplicationContext(), "SMS Gagal terkirim, cek pulsa dan coba lagi", Toast.LENGTH_LONG).show(); e.printStackTrace(); } } }); } }
2. Contoh penggunaan aplikasi SMS Built-in.
Buat project baru, pada file layout Activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/buttonSend"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Send" />
</LinearLayout>
Pada Activity, file MainActivity.java
package id.web.sinaryuda.android.tutorial.kirimpesansms; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity { Button buttonSend; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); buttonSend = (Button) findViewById(R.id.buttonSend); buttonSend.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { try { Intent smsIntent = new Intent(Intent.ACTION_VIEW); smsIntent.setData(Uri.parse("smsto:")); smsIntent.setType("vnd.android-dir/mms-sms"); smsIntent.putExtra("address" , new String ("0123456789") ); smsIntent.putExtra("sms_body" , "isi pesan sms"); startActivity(smsIntent); } catch (Exception e) { Toast.makeText(getApplicationContext(), "Aplikasi SMS tidak ada", Toast.LENGTH_LONG).show(); e.printStackTrace(); } } }); } }
Pastikan pada file AndroidManifest.xml telah ditambahkan user permission SEND_SMS
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="id.web.sinaryuda.android.tutorial.kirimpesansms" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" /> <uses-permission android:name="android.permission.SEND_SMS" /> <application android:debuggable="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:label="@string/app_name" android:name=".MainActivity" > <intent-filter > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>