Tutorial Belajar Pemrograman, membuat game, membuat aplikasi, membuat program, android, game maker, yii, php, CSS, HTML, java, javascript, codeigniter, jquery, Pascal, c++

Tuesday, November 26, 2013

Membuat Aplikasi Android Kirim SMS

Membuat Aplikasi Android Kirim SMS - Pada kali ini kita akan Membuat Aplikasi Android SMS, siapa saja yang mempunyai handphone baik itu smartphone ataupun handphone biasa pasti mengetahui dan pernah menggunakan SMS. Sms digunakan untuk mengirm pesan singkat dari suatu handphone ke handphone yang lain.

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, untuk cara penginstalan software yang di butuhkan baca di sini Cara Instalasi Package Untuk Membuat Aplikasi Android.

Untuk langkah - langkah membuat project baru lihat disini Cara Membuat Aplikasi Android

Pertama buatalah sebuah project android baru dengan property :

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>

Pada AndroidManifest.xml dia atas kita tambahkan permission SEND SMS dan RECEIVE_SMS dalam deklarasi script :

<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 cara

Klik kanan pada com.wilis.SMSMessaging > New > Class 
Kemudian 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();
        }                         
    }
}

Sebelum mulai menjalankan aplikasi anda buatlah sebuah emulator baru dengan cara :

Klik Window > Android SDK dan ADV Manager > Virtual Device > Klik New 
Kemudian 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 tulislah sebuah pesan dan krirmkan ke nomor emulator yang sudah dibuat dan di jalankan sebelumbya, jika dalam kasus program saya adalah 5556.

sms receive

Sekarang buka pesan yang sudah dikrim oleh emulator yang satunya apakah isi pesannya sama :

sms read

Seakrang 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.

Aplikasi Android Kirim SMS anda sekarang sudah selesai, baca juga tutorial membuat aplikasi android lainnya.

Terima Kasih Telah Mengunjungi Blog Sederhana Ini.

Di Mohon Apabila Anda Ingin Mengcopas Artikel Pada Blog ini Cantumkan URL Sumber.

Sebagai Pengunjung Yang Baik Anda Dapat Meninggalkan Komentar di Blog Sederhana Ini.

Share this post

8 komentar

  1. izin praktek yaa gan... thanxs salam blogger

    ReplyDelete
  2. kalau kirim ke banyak bagaimana om?
    misalnya aku mau ngirim ke 3 nomor skaligus

    ReplyDelete
    Replies
    1. This comment has been removed by the author.

      Delete
    2. Contoh agan bisa pisahkan no telp nya dengan koma.
      Kemudian pecahkan no nya menjadi array, kemudian lakukan perulangan untuk mengirim pesan untuk setiap no nya di SMS.java

      sendSMS(phoneNo, message);

      #CMIIW

      Delete
  3. mas gimana caranya sms dari no/kontak yang sama dapat menampung banyak sms (jadi pada inboxnya gak ditampilkan satu persatu ).
    terimakasih

    ReplyDelete
    Replies
    1. cek di sini :http://stackoverflow.com/questions/10870230/read-all-sms-from-a-particular-sender

      Ane juga belum coba juga sih, mungkin bisa membantu.

      Delete
  4. Gan hp jaman skrg kan bnyak yg dual sim.
    Gmna caranya di button send itu diksih ask buat mau pke sim1 atau sim2.
    Mohon bimbingan nya gan.

    ReplyDelete

:) :) :-) :-) :)) :)) =)) =)) :( :( :-( :-( :(( :(( :d :d :-d :-d @-) @-) :p :p :o :o :>) :>) (o) (o) [-( [-( :-? :-? (p) (p) :-s :-s (m) (m) 8-) 8-) :-t :-t :-b :-b b-( b-( :-# :-# =p~ =p~ :-$ :-$ (b) (b) (f) (f) x-) x-) (k) (k) (h) (h) (c) (c) cheer cheer

 
© Jin Toples Programming
Designed by BlogThietKe Cooperated with Duy Pham
Released under Creative Commons 3.0 CC BY-NC 3.0