Sama halnya dengan dial, SMS juga merupakan fungsi utama dari smartphone
android, pada aplikasi ini kita akan belajar bagaimana sebenarnya cara
membuat aplikasi SMS yang selalu kita gunakan setiap menggunakan
smartphone android. Aplikasi SMS ini kita akan buat sehingga bisa
mengirim pesan dari satu emulator device android ke emulator yang lain.
A. Buatlah Sebuah Project Android Baru
Sebelum anda memulai membuat project, apa bila anda baru memulai membuat
aplikasi android dan belum menginstal software yang diperlukan harap di
instal terlebih dahulu.
Project name : SMSMessaging
Build target : Android 2.3
Aplication name : SMS App
Package name : com.wilis.SMSMessaging
Activity : sms
Min SDK : 9
1. Main.xml
Ubahlah isi file main.xml dalam direktori res/layout menjadi seperti ini :
- <?xml version="1.0" encoding="utf-8"?>
- <linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <textview
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="Masukkan Nomor penerima"
- />
- <edittext
- android:id="@+id/txtPhoneNo"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- />
- <textview
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="Message"
- />
- <edittext
- android:id="@+id/txtMessage"
- android:layout_width="fill_parent"
- android:layout_height="150px"
- android:gravity="top"
- />
- <button
- android:id="@+id/btnSendSMS"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="Send SMS"
- />
- </LinearLayout>
2. AndroidManifest.xml
Ubahlah isi file AndroidManifest.xml dalam direktori root menjadi seperti ini :- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.wilis.SMSMessaging"
- android:versionCode="1"
- android:versionName="1.0.0">
- <application android:icon="@drawable/icon" android:label="@string/app_name">
- <activity android:name=".SMS"
- android:label="@string/app_name">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- </application>
- <uses-permission android:name="android.permission.SEND_SMS">
- </uses-permission>
- <uses-permission android:name="android.permission.RECEIVE_SMS">
- </uses-permission>
- </manifest>
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
3. SMS.java
Ubahlah isi file SMS.java dalam diretori scr/com.wilis.SMSMessaging menjadi seperti ini :- package com.wilis.SMSMessaging;
- import android.app.Activity;
- import android.app.PendingIntent;
- import android.content.BroadcastReceiver;
- import android.content.Context;
- import android.content.Intent;
- import android.content.IntentFilter;
- import android.os.Bundle;
- import android.telephony.SmsManager;
- import android.view.View;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.Toast;
- public class SMS extends Activity
- {
- Button btnSendSMS;
- EditText txtPhoneNo;
- EditText txtMessage;
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- btnSendSMS = (Button) findViewById(R.id.btnSendSMS);
- txtPhoneNo = (EditText) findViewById(R.id.txtPhoneNo);
- txtMessage = (EditText) findViewById(R.id.txtMessage);
- btnSendSMS.setOnClickListener(new View.OnClickListener()
- {
- public void onClick(View v)
- {
- String phoneNo = txtPhoneNo.getText().toString();
- String message = txtMessage.getText().toString();
- if (phoneNo.length()>0 && message.length()>0)
- sendSMS(phoneNo, message);
- else
- Toast.makeText(getBaseContext(),
- "Please enter both phone number and message.",
- Toast.LENGTH_SHORT).show();
- }
- });
- }
- //---sends an SMS message to another device---
- private void sendSMS(String phoneNumber, String message)
- {
- String SENT = "SMS_SENT";
- String DELIVERED = "SMS_DELIVERED";
- PendingIntent sentPI = PendingIntent.getBroadcast(this, 0,
- new Intent(SENT), 0);
- PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0,
- new Intent(DELIVERED), 0);
- //---when the SMS has been sent---
- registerReceiver(new BroadcastReceiver(){
- @Override
- public void onReceive(Context arg0, Intent arg1) {
- switch (getResultCode())
- {
- case Activity.RESULT_OK:
- Toast.makeText(getBaseContext(), "SMS sent",
- Toast.LENGTH_SHORT).show();
- break;
- case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
- Toast.makeText(getBaseContext(), "Generic failure",
- Toast.LENGTH_SHORT).show();
- break;
- case SmsManager.RESULT_ERROR_NO_SERVICE:
- Toast.makeText(getBaseContext(), "No service",
- Toast.LENGTH_SHORT).show();
- break;
- case SmsManager.RESULT_ERROR_NULL_PDU:
- Toast.makeText(getBaseContext(), "Null PDU",
- Toast.LENGTH_SHORT).show();
- break;
- case SmsManager.RESULT_ERROR_RADIO_OFF:
- Toast.makeText(getBaseContext(), "Radio off",
- Toast.LENGTH_SHORT).show();
- break;
- }
- }
- }, new IntentFilter(SENT));
- //---when the SMS has been delivered---
- registerReceiver(new BroadcastReceiver(){
- @Override
- public void onReceive(Context arg0,Intent arg1) {
- switch (getResultCode())
- {
- case Activity.RESULT_OK:
- Toast.makeText(getBaseContext(), "SMS delivered",
- Toast.LENGTH_SHORT).show();
- break;
- case Activity.RESULT_CANCELED:
- Toast.makeText(getBaseContext(), "SMS not delivered",
- Toast.LENGTH_SHORT).show();
- break;
- }
- }
- }, new IntentFilter(DELIVERED));
- SmsManager sms = SmsManager.getDefault();
- sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);
- }
- }
4. SmsReceiver.java
Buatlah sebuah file class java baru di dalam direktori src/com.wilis.SMSMessaging dengan caraKlik kanan pada com.wilis.SMSMessaging > New > ClassKemudian ubah isinya menjadi seperti ini :
- package com.wilis.SMSMessaging;
- import android.content.BroadcastReceiver;
- import android.content.Context;
- import android.content.Intent;
- import android.os.Bundle;
- import android.telephony.gsm.SmsMessage;
- import android.widget.Toast;
- public class SmsReceiver extends BroadcastReceiver
- {
- @Override
- public void onReceive(Context context, Intent intent)
- {
- //---get the SMS message passed in---
- Bundle bundle = intent.getExtras();
- SmsMessage[] msgs = null;
- String str = "";
- if (bundle != null)
- {
- //---retrieve the SMS message received---
- Object[] pdus = (Object[]) bundle.get("pdus");
- msgs = new SmsMessage[pdus.length];
- for (int i=0; i<msgs.length; i++){
- msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
- str += "SMS from " + msgs[i].getOriginatingAddress();
- str += " :";
- str += msgs[i].getMessageBody().toString();
- str += "\n";
- }
- //---display the new SMS message---
- Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
- }
- }
- }
Klik Window > Android SDK dan ADV Manager > Virtual Device > Klik NewKemudian isi propertinya seperti berikut :
Name : Android23Terima
Target : Android 2.3 - API Level 9
Size : 64Mib
Klik Create ADV > Klik Android23Terima > Start > launch
Tunggu sampai tampilan home android muncul dan proses sudah stabil atau tidak terlalu berat, sekarang jalankan aplikasi SMS dengan cara :
Klik Run As > Android Aplication
Sekarang buka pesan yang sudah dikrim oleh emulator yang satunya apakah isi pesannya sama :
Sekarang coba anda krimkan ke dalam emulator yang anda gunakan untuk mengirim pesan tersebut, apakah pesannya sampai ?
Sumber : Pemograman Aplikasi Mobile Smartphone dan tablet PC Berbasic Android Penerbit Informatika, Bandung, 2012 By : Nazruddin Safaat.
0 Komentar untuk "Cara Membuat Aplikasi Android Kirim SMS "