Call Phone Permission pada Android Oleh: Adnan w Anadrep Halo, berjumpa lagi dengan saya :) Kali ini saya akan memberikan tutorial di android mengenai penggunaan CALL_PHONE permission. Dalam tutorial ini, akan membangun sebuah aplikasi bernama Taxi Dialer. Halo, berjumpa lagi dengan saya :) Kali ini saya akan memberikan tutorial di android mengenai penggunaan CALL_PHONE permission. Dalam tutorial ini, akan membangun sebuah aplikasi bernama Taxi Dialer. Sebelumnya, kita bahas terlebih dahulu permission yang akan kita gunakan dalam tutorial ini. Yang pertama adalah CALL_PHONE permission dimana mengizinkan aplikasi melakukan panggilan telepon tanpa melalui user interface Dialer bagi pengguna untuk mengkonfirmasi panggilan ditempatkan. Dan CALL_PRIVILEGED mengizinkan aplikasi untuk memanggil nomor telepon, termasuk nomor darurat, tanpa melalui user interface Dialer bagi pengguna untuk mengkonfirmasi panggilan ditempatkan. Yang kamu butuhkan untuk membuat aplikasi ini adalah: 1. 2. Eclipse with ADT SDK Manager Langsung saja buka eclipse dan Create Android Project > Nama package dan nama project bebas. Untuk mengaktifkan 2 permission diatas, buka file AndroidManifest.xml dan tambahkan uses-permission didalam tag manifest. <uses-permission android:name="android.permission.call_phone"></uses-permission> <uses-permission android:name="android.permission.call_privileged"></uses-permission> Setelah menambahkan permission yang dibutuhkan, langsung saja buka MainActivity.java untuk membuat activity utamanya. Dalam aplikasi ini, saya meng-extends ListActivity pada MainActivity.java sehingga akan menggunakan ListView di MainActivity ini. Karena langsung meng-extends ListActivity, jadi tidak perlu mengubah layout di res > layout, maka akan otomatis tergenerate ListView tersebut. public class MainActivity extends ListActivity { Kemudian buatlah array untuk menampung nama taxi. //Buat arrray 2 dimensi untuk data taksi yang terdiri dari nama dan nomor telepon
private String[][] taxi_data = { { "Blue Bird", "0217941234", { "Express", "02126509000", { "Golden", "02165300333", { "Prima Jasa", "0217424525", { "Dian", "0215807070", { "Sri Medali", "0218005555", { "Putra", "0217815777" ; //Buat arrray 1 dimensi untuk keperluan pembuatan menu list provider taxi private String[] taxi_name = { "Blue Bird", "Express", "Golden", "Prima Jasa", "Dian", "Sri Medali", "Putra", "Exit" ; Karena activity ini sudah otomatis menggunakan ListView, maka didalam oncreate langsung saja set adapternya. public void oncreate(bundle icicle) { super.oncreate(icicle); // Create an ArrayAdapter, that will actually make the Strings above // appear in the ListView // Menset nilai array ke dalam list adapater sehingga data pada array // akan dimunculkan dalam list this.setlistadapter(new ArrayAdapter<String>(this, android.r.layout.simple_list_item_1, taxi_name)); Selanjutnya kita akan meng-override method onlistitemclick yang berfungsi menjadi listener jika item list view di klik. @Override /**method ini akan mengoveride method onlistitemclick yang ada pada class List Activity * method ini akan dipanggil apabilai ada salah satu item dari list menu yang dipilih protected void onlistitemclick(listview l, View v, int position, long id) { super.onlistitemclick(l, v, position, id); // Get the item that was clicked // Menangkap nilai text yang dklik // Object o = this.getlistadapter().getitem(position); // String pilihan = o.tostring(); String pilihan = this.getlistadapter().getitem(position).tostring(); // Mencek pilihan, apabila pilihan = Exit maka akan keluar dari aplikasi if (pilihan.equals("exit")) { finish(); else {// pilihan!= exit maka akan memanggil method calltaxi calltaxi(pilihan);
Kemudian buat method calltaxi untuk dial ke nomor yang terdapat pada array yang sudah dibuat. /** * Launches the activity to make phone call to taxi provider based on * selected taxi * protected void calltaxi(string pilihan) { try { // Intent digunakan untuk sebagai pengenal suatu activity untuk // membuat panggilan telepon Intent callintent = new Intent(Intent.ACTION_CALL); String phonenumber = ""; for (int i = 0; i < taxi_data.length; i++) { if (pilihan.equals(taxi_data[i][0])) { phonenumber = taxi_data[i][1]; if (phonenumber.equals("")) { Toast.makeText(this, "Provider Taxi is not register", Toast.LENGTH_LONG).show(); return; callintent.setdata(uri.parse("tel:" + phonenumber)); startactivity(callintent); catch (Exception e) { e.printstacktrace(); Maka, code secara lengkap seperti ini: package org.nanda.example; import android.app.activity; import android.app.listactivity; import android.content.intent; import android.net.uri; import android.os.bundle; import android.view.view; import android.widget.arrayadapter; import android.widget.listview; import android.widget.toast; public class MainActivity extends ListActivity { //Buat arrray 2 dimensi untuk data taksi yang terdiri dari nama dan
nomor telepon private String[][] taxi_data = { { "Blue Bird", "0217941234", { "Express", "02126509000", { "Golden", "02165300333", { "Prima Jasa", "0217424525", { "Dian", "0215807070", { "Sri Medali", "0218005555", { "Putra", "0217815777" ; //Buat arrray 1 dimensi untuk keperluan pembuatan menu list provider taxi private String[] taxi_name = { "Blue Bird", "Express", "Golden", "Prima Jasa", "Dian", "Sri Medali", "Putra", "Exit" ; public void oncreate(bundle icicle) { super.oncreate(icicle); // Create an ArrayAdapter, that will actually make the Strings above // appear in the ListView // Menset nilai array ke dalam list adapater sehingga data pada array // akan dimunculkan dalam list this.setlistadapter(new ArrayAdapter<String>(this, android.r.layout.simple_list_item_1, taxi_name)); @Override /**method ini akan mengoveride method onlistitemclick yang ada pada class List Activity * method ini akan dipanggil apabilai ada salah satu item dari list menu yang dipilih protected void onlistitemclick(listview l, View v, int position, long id) { super.onlistitemclick(l, v, position, id); // Get the item that was clicked // Menangkap nilai text yang dklik // Object o = this.getlistadapter().getitem(position); // String pilihan = o.tostring(); String pilihan = this.getlistadapter().getitem(position).tostring(); // Mencek pilihan, apabila pilihan = Exit maka akan keluar dari aplikasi if (pilihan.equals("exit")) { finish(); else {// pilihan!= exit maka akan memanggil method calltaxi calltaxi(pilihan); /** * Launches the activity to make phone call to taxi provider based on * selected taxi *
protected void calltaxi(string pilihan) { try { // Intent digunakan untuk sebagai pengenal suatu activity untuk // membuat panggilan telepon Intent callintent = new Intent(Intent.ACTION_CALL); String phonenumber = ""; for (int i = 0; i < taxi_data.length; i++) { if (pilihan.equals(taxi_data[i][0])) { phonenumber = taxi_data[i][1]; if (phonenumber.equals("")) { Toast.makeText(this, "Provider Taxi is not register", Toast.LENGTH_LONG).show(); return; callintent.setdata(uri.parse("tel:" + phonenumber)); startactivity(callintent); catch (Exception e) { e.printstacktrace(); Selesai sudah kita membuat satu aplikasi yang menggunakan CALL_PHONE dan CALL_PRIVILEGED permission, dan hasilnya akan seperti gambar berikut: Misalnya klik Blue Bird, maka langsung masuk ke dialer. Sekian tutorial dari saya, Let's Rock! Tentang Penulis Adnan w Anadrep