Call Phone Permission Pada Android

11 views

Halo, berjumpa lagi dengan saya  Kali ini aku akan memperlihatkan tutorial di android mengenai penggunaan CALL_PHONE permission. Dalam tutorial ini, akan membangun sebuah aplikasi berjulukan Taxi Dialer.

Sebelumnya, kita bahas terlebih dahulu permission yang akan kita gunakan dalam tutorial ini. Yang pertama yaitu CALL_PHONE permission dimana mengizinkan aplikasi melaksanakan 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 kau butuhkan untuk menciptakan aplikasi ini adalah:

  1. Eclipse with ADT
  2. 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 menciptakan activity utamanya. Dalam aplikasi ini, aku meng-extends ListActivity pada MainActivity.java sehingga akan memakai ListView di MainActivity ini. Karena pribadi 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 teleponprivate 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 hidangan list provider taxiprivate String[] taxi_name = { "Blue Bird", "Express", "Golden","Prima Jasa", "Dian", "Sri Medali", "Putra", "Exit" };

Karena activity ini sudah otomatis memakai ListView, maka didalam onCreate pribadi 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 listthis.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 jikalau 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 hidangan 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 aplikasiif (pilihan.equals("Exit")) {finish();} else {// pilihan != exit maka akan memanggil method callTaxicallTaxi(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 dipakai untuk sebagai pengenal suatu activity untuk// menciptakan panggilan teleponIntent 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 ibarat 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 teleponprivate 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 hidangan list provider taxiprivate 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 listthis.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 hidangan 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 aplikasiif (pilihan.equals("Exit")) {finish();} else {// pilihan != exit maka akan memanggil method callTaxicallTaxi(pilihan);}}/** * Launches the activity to make phone call to taxi provider based on * selected taxi * */protected void callTaxi(String pilihan) {try {// Intent dipakai untuk sebagai pengenal suatu activity untuk// menciptakan panggilan teleponIntent 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 menciptakan satu aplikasi yang memakai CALL_PHONE dan CALL_PRIVILEGED permission, dan akhirnya akan ibarat gambar berikut:

   

Misalnya klik Blue Bird, maka pribadi masuk ke dialer.

 

Sekian tutorial dari saya, Let’s Rock!

Author: 
    author
    No related post!