Selasa, 01 Maret 2016

Pemrograman Android Untuk Membaca SMS Inbox

Pemrograman Android Untuk Membaca SMS Inbox | Pemrograman Android untuk membaca SMS di Handphone cukup sederhana, bisa dilakukan dengan beberapa baris kode program. Kesulitannya lebih dalam hal menampung isi SMS tersebut, karena bisa ratusan bahkan ribuan, memilah-milah yang sudah dibaca (READ), belum dibaca (UNREAD), draft dan sebagainya. Tetapi artikel ini hanya akan membahas bagaimana membaca isi SMS yang ada di perangkat Android, dan agar tidak rumit kita batasi 10 SMS terbaru.

Membuat Project Read SMS

Seperti biasa, buat dahulu project baru di Android Studio atau Eclipse ADT. Dalam Artikel ini akan dibahas pembuatan menggunakan Android Studio saja, tetapi bagi yang sudah biasa menggunakan Eclipse ADT juga bisa mengikuti dan meletakkan kode program pada lokasi yang sama yang ada di Eclipse.


Mengeset Permission Android Manifest

Supaya aplikasi dapat membaca SMS, diperlukan uses-permission di AndroidManifest.xml agar diperbolehkan Sistem Operasi Android untuk membaca SMS. Buka AndroidManifest.xml dan tambahkan baris berikut ini :

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="co.amijaya.read_sms" > <uses-permission android:name="android.permission.READ_SMS"/> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/AppTheme.NoActionBar" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>

Membuat Desain Tampilan

Desain interface tampilan dibuat sederhana, cukup dengan satu buat tombol, untuk memulai pembacaan SMS. Buka content_main.xml di Android Studio, atau activity_main.xml di Eclipse ADT. Buat menjadi seperti ini :

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:showIn="@layout/activity_main" tools:context="co.amijaya.read_sms.MainActivity"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Get Phone Number" android:id="@+id/buttonreadsms" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> </RelativeLayout>

Kode Program untuk Membaca SMS

Pada Activity utama, dalam hal ini adalah MainActivity, tambahkan kode program berikut ini untuk membaca SMS. Jumlah SMS yang dibaca dibatasi cukup 10 SMS agar tidak membutuhkan proses yang lama, karena normalnya SMS bisa sampai berjumlah ratusan atau ribuan.

package co.amijaya.read_sms; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends AppCompatActivity { Button buttonreadsms; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) .setAction("Action", null).show(); } }); buttonreadsms = (Button)findViewById(R.id.buttonreadsms); buttonreadsms.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // public static final String INBOX = "content://sms/inbox"; // public static final String SENT = "content://sms/sent"; // public static final String DRAFT = "content://sms/draft"; Cursor cursor = getContentResolver().query(Uri.parse("content://sms/inbox"), null, null, null, null); if (cursor.moveToFirst()) { // must check the result to prevent exception int i=0, max = 10; do { i++; if (i>= max) { break; } //limited to 10 sms, remove this line to read all sms, becarefull!! String msgData = ""; for(int idx=0;idx<cursor.getColumnCount();idx++) { msgData += " " + cursor.getColumnName(idx) + ":" + cursor.getString(idx); } // use msgData Toast.makeText(MainActivity.this, msgData, Toast.LENGTH_LONG).show(); } while (cursor.moveToNext()); } else { // empty box, no SMS } } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }

Untuk membaca SMS lebih banyak lagi bisa dimodifikasi baris program diatas pada baris berikut :

i++; if (i>= max) { break; } //limited to 10 sms, remove this line to read all sms, becarefull!!

Menjalankan Aplikasi

Setelah selesai dibuat, aplikasi bisa dijalankan di Handphone, Tablet atau di Emulator, sehingga akan muncul tampilan sebagai berikut :



Untuk memulai pembacaan SMS bisa diklik Tombol "Read SMS", maka SMS akan dibaca dan ditampilkan dalam bentuk Toast (Message Box yang bisa hilng sendiri), informasi yang ditampilkan adalah Nomor Pengirim dan Isi SMS

Project selengkapnya bisa didownload disini
https://drive.google.com/file/d/0B4i1FYc_4RXzazJvNFBGUWppMkU/view?usp=sharing

Semoga Bermanfaat ^_^

Tidak ada komentar:

Posting Komentar