-->

Mengirimkan Sms dengan Android Source Code / Mengambil nomor contact dari android

Nah pada kesempatan kali ini ane ingin berbagi ilmu lagi nih pada temen - temen yang ingin mendalami mengenai android. Nah pada tutorial kali ini akan ane berikan sedikit tutorial mengenai mengirimkan pesan di android. Pada dasarnya kita dapat mengirimkan pesan di android dengan mudah dengan memanfaatkan kelas SmsManager yang ada di android. Oke langsung saja kita desain layoutnya ya..



<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent" android:layout_height="fill_parent"
 android:background="@drawable/back" android:orientation="vertical">
 <ImageView android:src="@drawable/header"
  android:layout_width="wrap_content" android:layout_height="wrap_content">
 </ImageView>
 <!-- layout untuk header -->
 <LinearLayout android:layout_width="fill_parent"
  android:layout_height="wrap_content" android:orientation="horizontal"
  android:layout_marginTop="20dip" android:layout_marginLeft="20dip">
  <!-- layout gambar home -->
  <ImageView android:layout_width="wrap_content"
   android:layout_height="wrap_content" android:src="@drawable/home"></ImageView>
  <TextView android:text="Main Menu / Generate Chart"
   android:layout_width="fill_parent" android:layout_height="wrap_content"
   android:textColor="#000000" android:textStyle="bold"
   android:textSize="17dip" android:id="@+id/title_caption"></TextView>
 </LinearLayout>
 <!-- layout untuk garis line -->
 <RelativeLayout android:layout_width="fill_parent"
  android:layout_height="wrap_content" android:background="@drawable/line_gradient"
  android:layout_marginTop="-15dip"></RelativeLayout>
 <RelativeLayout android:layout_width="fill_parent"
  android:layout_height="wrap_content" android:background="@drawable/line"
  android:layout_marginTop="20dip"></RelativeLayout>
 <ScrollView android:layout_width="fill_parent"
  android:layout_height="wrap_content">
  <LinearLayout android:layout_width="fill_parent"
   android:layout_height="wrap_content" android:orientation="vertical">
   <TextView android:text="Nomor HP" android:textColor="#000000"
    android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
   <LinearLayout android:layout_width="fill_parent"
    android:layout_height="wrap_content" android:orientation="horizontal">
    <EditText android:text="" android:id="@+id/TextNoHP"
     android:layout_width="210dip" android:layout_height="wrap_content"></EditText>
    <ImageButton android:layout_width="wrap_content"
     android:id="@+id/button_add_contact" android:layout_height="wrap_content"
     android:src="@drawable/add_contact"></ImageButton>
    <ImageButton android:layout_width="wrap_content"
     android:id="@+id/button_send" android:layout_height="wrap_content"
     android:src="@drawable/sms"></ImageButton>
   </LinearLayout>
   <TextView android:text="Pesan" android:textColor="#000000"
    android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
   <EditText android:text="" android:id="@+id/TextPesan"
    android:layout_width="fill_parent" android:minLines="4"
    android:layout_height="wrap_content"></EditText>
  </LinearLayout>
 </ScrollView>
</LinearLayout>




Nah untuk dapat mengirimkan smsnya cukup simple tinggal buat aja activity yang mengambil contact dari content providernya. Nah biar gak kelamaan ngomong langsung aja buat code seperti ini ane buat di SmsActivity.

package org.data.provider;

import java.util.List;

import android.app.Activity;
import android.app.PendingIntent;
import android.content.ContentResolver;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.telephony.SmsManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Toast;

public class SmsActivity extends MyActivity {
 public static final String ACTION_SMS_SENT = "com.example.android.apis.os.SMS_SENT_ACTION";
 public static final int PICK_CONTACT = 1;
 private EditText EditTextPesan, EditTextNomorHp;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.layout_sms);
  String sentText = getIntent().getExtras().getString("SEND_TEXT");

  EditTextPesan = (EditText) findViewById(R.id.TextPesan);
  EditTextNomorHp = (EditText) findViewById(R.id.TextNoHP);
  EditTextPesan.setText(sentText);
  final SmsManager sms = SmsManager.getDefault();
  ImageButton buttonSend = (ImageButton) findViewById(R.id.button_send);
  buttonSend.setOnClickListener(new OnClickListener() {

   @Override
   public void onClick(View v) {
    if(EditTextNomorHp.getText().toString().equals("")){
     Dialog.pesanOk("Maaf anda belum memilih nomor telepon", SmsActivity.this);
     return;
    }
    List messages = sms.divideMessage(EditTextPesan
      .getText().toString());

    String recipient = EditTextNomorHp.getText().toString();
    for (String message : messages) {
     sms.sendTextMessage(recipient, null, message, PendingIntent
       .getBroadcast(SmsActivity.this, 0, new Intent(
         ACTION_SMS_SENT), 0), null);
    }
    Toast.makeText(SmsActivity.this, "Pesan anda berhasil dikirim ", Toast.LENGTH_LONG).show();
   }
  });
  ImageButton img = (ImageButton) findViewById(R.id.button_add_contact);
  img.setOnClickListener(new OnClickListener() {
   @Override
   public void onClick(View v) {
    Intent intent = new Intent(Intent.ACTION_PICK,
      ContactsContract.Contacts.CONTENT_URI);
    startActivityForResult(intent, PICK_CONTACT);

   }
  });
 }

 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
  if (requestCode == PICK_CONTACT && resultCode==Activity.RESULT_OK) {
   Uri contactData = data.getData();
   ContentResolver cr = getContentResolver();
   Cursor cur = managedQuery(contactData, null, null, null, null);
   if (cur.getCount() > 0) {
    while (cur.moveToNext()) {
     String id = cur.getString(cur
       .getColumnIndex(ContactsContract.Contacts._ID));
     if (Integer
       .parseInt(cur.getString(cur
         .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
      Cursor pCur = cr
        .query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
          null,
          ContactsContract.CommonDataKinds.Phone.CONTACT_ID
            + " = ?", new String[] { id },
          null);
      while (pCur.moveToNext()) {
       String nomorHp = pCur
         .getString(pCur
           .getColumnIndex(ContactsContract.CommonDataKinds.Phone.DATA));
       EditTextNomorHp.setText(nomorHp);
      }
      pCur.close();
     }
    }
   }
  }
 }
}



Nah cukup simple kan. Memang semua fungsi yang ada di android dapat dilakukan dengan mudah..
Semoga bermanfaat.

Update
Karena banyak yang menanyakan project dari source ini langsung saja download full projectnya disini yah..
https://dl.dropbox.com/u/20916268/Data%20Service%20Provider%209%20oktober%202011.zip
Facebook Comments

33 komentar

android apa yang kamu pake? lagi nyari2 android yang murah tapi bagus nih hehe

Balas

salah tempat kayaknya kalo nanya disini

Balas

mas,,mau tanya,,untuk class MyActivity nya tidak dijelaskan codingnya?..
apakah jarus dibuat class utk MyActivity?

Balas

oh pake Activity juga papa kok. itu saya pake untuk setting keseluruhan activity biar seragam...

Balas

Bisa di upload project'nya gak mas. :D

Balas

kakak minta projectya ni ? ni email saya adhadimas91@gmail.com
oia Fb ya di confim ya ... mksi kak .

Balas

Yup udah saya kirim yah..

Balas

mas...untuk ngambil kontak dari phonebook koq ga bisa ya...??

Balas

gak bisanya gmana?

Balas

mas kok force close y,,
di manifest y di tambahin user-permission apa gtu gk ? hehe

Balas

kk, minta project dong udh nyoba tp force close trs di bagian ContactsContract ngak bsa di import,,
email y : ayat312@gmail.com
makasih y kk,,

Balas

ForceClosenya apa coba cek dulu di logcat...

Balas

mas ContactsContract kok gk bsa y, langsung di import android.provider.ContactsContract; malah tanda merah knp y?

Balas

Coba cek lagi merahnya itu kenapa..?? kalo tetap gak bisa berarti masalahnya bukan di importnya

Balas

mas mo nanya n, pas button_add_contact diklik muncul kontak y tapi gk ke set ke TextNoHP y...
fungsi onActivityResult di panggil y dmn ya mas..

Balas

onActivityResultnya kan udah jelas kan di Activity yang mengambil..

Balas
Komentar ini telah dihapus oleh pengarang.

mas saya mau tanya, kalo maksud dari syntax ini apa ya ?

if(EditTextNomorHp.getText().toString().equals("")){
Dialog.pesanOk("Maaf anda belum memilih nomor telepon", SmsActivity.this);
return;

Setelah saya coba ada tanda merah di .pesanOK
makasih mas sebelumnya..

Balas

Itu pake alertdialog sesuaikan ma codingmu

Balas

oia mas mau nanya lagi.. mas punya source code android untuk menampilkan inbox sms ga..? saya dah nyari tapi agak susah juga nemunya... mkasih mas sebelumnya

Balas

gan ane minta sourcodenya....email saya, benbear91@gmail.com

Balas

boleh minta sourcodenya gan? little.shine2507@gmail.com
thanks

Balas

mas aq minta programnya, kirim ke andy.octaviani@gmail.com

Balas

gan...
boleh minta sourcodenya gan?
penting nih buat belajar dari agan... hehhee
butuh bantuannya ya gan...
Thx... ^^
welly990@gmail.com

Balas

aslm mas,
bagaimana kalau kita mengKlik link dari isi pesan yg kita terima, gmna kodingannya mas ??
karena saya sudah buat kodingan untuk menerima pesan tapi saya kesusahan dalam meng"CLICKABLE" link dari isi pesan tersebut, bisa bantu gak mas ??

Balas

Wah Keren...
Minta ProjecNya donk Mas...
Kirim ke Email Saya : Daniraka_19@yahoo.co.id

Makasih ya Mas...

Balas

kk minta di kirimin full projectnya dunk ke email ini
meizoel@gmail.com

aku lagi butuh banget nih buat tugas skripsi
plis bantuin yah kk

Balas

Gan Minta source code nya gan.

gw butuh bgt skripsi gw..

nicolas.oct@gmail.com

Balas

Baca tulisan ane di akhir post ini gan..

Balas

mas minta projectnya donk.untuk study mobile programing.
email:rubaman.hasuli@gmail.com
thank you.. :)

Balas

wow,. nice. (y)

can u send the source code to my e-mail.
lotulung.c@gmail.com

Balas

minta source codenya
gmail: rivantimargarita@gmail.com

Balas