Index of /Kuliah2016-2017/Struktur & Pemakaian Teknologi Game

(1)

BAB 6


(2)

92

6.1

Tujuan Pembelajaran

1. Memahami tentang cara penggunaan intent.

2. Memahami cara untuk menghubungkan dua buah activity.

6.2

Dasar Teori

Pada bab ini, akan dibahas mengenai Intent. Intent mungkin merupakan konsep pengembangan aplikasi android yang paling unik dan paling penting. Disini akan dipelajari bagaimana cara menggunakan intent untuk mem-broadcast data pada aplikasi, memulai activity atau service secara eksplisit maupun implisit.

6.2.1

Intent

Intent bekerja menggunakan mekanisme transfer pesan (data) dari activity satu ke activity lain, dari aplikasi satu ke aplikasi lain.

Pada penggunaan intent secara eksplisit, user menyebutkan sebuah class lain untuk di load. Secara implisit, user hanya merequest sebuah action yang sudah built-in untuk dijalankan. Intent juga memiliki fasilitas Broadcast Intent yang digunakan sebagai sistem yang membroadacast pesan dan menggunakan Broadcast Receiver untuk menerima pesan yang dikirim secara broadcast.

Menggunakan Intent untuk Memulai activity

Kegunaan yang paling umum dari intent adalah mengikat komponen aplikasi. Intent digunakan untuk memulai dan transisi antar activity.

Intent secara Eksplisit

Untuk memulai intent secara eksplisit, pilih sebuah activity class dari aplikasi lalu gunakan Context dari activity saat ini dan Class dari activity yang akan dijalankan sebagai parameter penggunaan eksplisit intent.

Intent intent = new Intent(Activityku.this, ActivityLain.class); startActivity(intent);


(3)

93 Setelah startActivity dieksekusi, activity baru(dalam contoh ini ActivityLain) akan dibuat, menjadi terlihat dan aktif, bergerak ke bagian teratas dari activity stack.

Memanggil finish pada activity yang baru dibuat atau menekan tombol back pada device akan menutup activity dan menghapusnya dari stack.

Intent secara Implisit

Implisit intent adalah mekanisme yang membiarkan komponen dari aplikasi anonim merequest action service. Hal ini berarti aplikasi bisa meminta pada sistem untuk menjalankan built-in atau action service yang sudah ditanam dalan android tanpa mengetahui aplikasi mana atau activity mana yang mencetusnya.

Ketika membuat implisit intent, Anda harus menambakan sebuah action built-in yang akan dijalankan dan secara opsional biasanya juga diikuti oleh URI data untuk menjalankan action tersebut. Selain URI beberapa action juga membutuhkan data tambahan untuk menjalankannya.

If(lampuKosMati){

Intent telpPLN = new Intent(Intent.ACTION_DIAL,

Uri.parse(tel:7108573)); startActivity(telpPLN); }

Android akan membaca intent dan memulai activity yang menyediakan fasilitas dial ke nomor telepon diatas

Table 4 Beberapa Action Intent yang biasa digunakan

ACTION_ANSWER Menjawab panggilan masuk

ACTION_ATTACH_DATA Mengindikasikan data yang harus dilekatkan pada tempat lain

ACTION_CALL Menempatkan panggilan pada lokasi yang menyediakan

ACTION_DELETE Menghapus data yang ditentukan

ACTION_DIAL Membuka activity pemanggilan dan


(4)

94 ACTION_EDIT Melayani akses pengubahan pada data yang

tersedia

ACTION_EMERGENCY_DIAL Memanggil nomor darurat

ACTION_GET_CONTENT Memilih dan mengembalikan data yang ditentukan

ACTION_INSERT Memasukkan ke item yang kosong

ACTION_MAIN Membentuk titik awal activity

ACTION_PICK Memilih item dan mengembalikan pilihan

ACTION_RUN Menjalankan data yang diberikan

ACTION_SEARCH Melakukan pencarian ke sistem

ACTION_SEND Mengirim data tanpa penentuan penerima

ACTION_SENDTO Mengirim data ke penerima yang ditentukan

ACTION_VIEW Menampilkan data kepada user

ACTION_WEB_SEARCH Melakukan pencarian web

Broadcast Intent

Intent yang mengirimkan ke lebih dari satu activity untuk ditangani. Sebagai contoh,

Broadcast Intent akan mengirimkan perubahan waktu activity dapat memproses ini dan bereaksi sesuai waktu yang diberikan atau pengiriman level baterai oleh

Broadcast Intent dapat digunakan untuk menghentikan aplikasi apabila baterai sudah dibawah level tertentu.

Action Broadcast

Intent intent = new Intent(ACTION_TIME_TICK); sendBroadcast(intent);

Listener

import android.content.BroadcastReceiver; import android.content.Context;

import android.content.Intent;

public class MyBroadcastReceiver extends BroadcastReceiver { @Override

public void onReceive(Context context, Intent intent) { //TODO: React to the Intent received.

} }


(5)

95 Table 5 Beberapa Broadcast Intent yang biasa digunakan

Broadcast Intent Keterangan

ACTION_TIME_TICK Waktu sekarang telah berubah,

mengirim setiap menit.

ACTION_TIME_CHANGED Waktu telah diatur

ACTION_TIMEZONE_CHANGED Zona waktu telah berubah

ACTION_ BOOT_COMPLETED Disiarkan sekali ketika sistem telah menyelesaikan proses booting

ACTION_PACKAGE_ADDED Package aplikasi baru telah diinstal ke device

ACTION_PACKAGE_CHANGED Package aplikasi yang ada telah diubah ACTION_PACKAGE_REMOVED Package aplikasi yang ada telah

dipindahkan

ACTION_PACKAGE_RESTARTED Pengguna memulai kembali package dan semua proses telah dimatikan ACTION_PACKAGE_DATA_CLEARED Pengguna telah membersihkan data dari

package

ACTION_UID_REMOVE User ID telah dipindahkan dari sistem ACTION_BATTERY_CHANGED Penyiaran meliputi keadaan pengisian,

level dan informasi lain mengenai baterai.

ACTION_POWER_CONNECTED Daya dari luar dihubungkan ke device ACTION_POWER_DISCONNECTED Daya dari luar dilepas dari device

ACTION_SHUTDOWN Device dimatikan

Objek Intent

Objek intent merupakan sekumpulan informasi berkaitan dengan komponen yang akan menerima intent termasuk aksi yang akan diambil ditambah informasi berkaitan dengan sistem Android termasuk kategori dari komponen yang seharusnya menangani Intent dan memerintahkan bagaimana memunculkan activity tujuan.


(6)

96 Atribut Intent

o Atribut Utama Action

String yang berisi nama dari aksi yang akan dilakukan atau pada Broadcast Intent merupakan pelaporan dari aksi yang terjadi. Action yang biasa dilakukan dapat dilihat pada bagian sebelumnya

Data

Setiap action akan memiliki pasangan jenis data yang berbeda-beda yang dinyatakan sebagai URI. Misalnya, jika action adalah ACTION_EDIT, maka data akan mengandung URI dokumen yang akan ditampilkan untuk diedit. Jika action adalah ACTION_CALL, maka data akan menjadi tel: URI dengan nomor untuk panggilan. Demikian pula, jika tindakan tersebut

ACTION_VIEW dan bidang data adalah http: URI, activity menerima perintah untuk men-download dan menampilkan data apa pun mengacu pada URI.

o Atribut Tambahan Category

Memberikan informasi tambahan mengenai tindakan untuk mengeksekusi. Sebagai contoh, CATEGORY_LAUNCHER berarti harus muncul dalam

launcher sebagai aplikasi tingkat atas, sementara

CATEGORY_ALTERNATIVE berarti tindakan alternatif user yang dapat dilakukan pada sebuah data, misal: Print Preview adalah sebuah alternatif dari Regular View.

Extra

Ini adalah Bundle dari setiap informasi tambahan. Extra dapat digunakan untuk memberikan informasi tambahan ke komponen.

Flag

Pada sistem Android banyak perintah yang dapat mendeskripsikan bagaimana untuk pemuatan activity, sebagai contoh task dari activity harus


(7)

97 menjadi milik siapa dan bagaimana penanganan setelah dimuat. Semua Flag ini didefinisikan pada Class Intent.

Type

Type digunakan untuk menspesifikasikan tipe data/file general pada Intent. Contoh:

Pada aplikasi untuk mengirim gambar,

myIntent.setType(“image/png”);

Pada aplikasi mengirim email,

myIntent.setType(“message/rfc822”);

Component

Component digunakan sebagai salah satu cara untuk memulai activity dengan menspesifikasikan ComponentName.

setComponent(ComponentName name);

ComponentName disusun dengan mengikat nama package dan nama class bersama-sama membentuk sebuah parameter baru yang dapat dimanfaatkan dalam intent.

Contoh:

Intent intent = new Intent();

intent.setComponent(new ComponentName( "com.android.myPackage",

"com.android.myPackage.myActivity"); startActivity(intent)

Permission

Pada sebuah aplikasi android, penggunaan fasilitas Intent hampir selalu disertai oleh penambahan permission pada AndroidManifest.xml karena secara default, fasilitas-fasilitas telepon, sms, kamera, sensor, beserta hardware dilindungi oleh android. Hal ini sangat dibutuhkan karena digunakan untuk memberi izin akses fitur-fitur yang terlindungi.


(8)

98 Pada eksplisit Intent yang tidak menggunakan action built-in melainkan class yang didefinisikan sendiri oleh user, harus meregister class yang baru pada AndroidManifest.xml.

Contoh untuk eksplisit Intent: <application>

<activity

android:name=".ClassBaru"

android:label="@string/app_name" > <intent-filter>

<category

android:name="android.intent.category.DEFAULT" /> </intent-filter>

</activity> …

</application>

Untuk implisit Intent dan Broadcast Intent, cukup meregister action yang hendak digunakan, sebagai contoh pada penggunaan fasilitas melakukan panggilan telepon: <application>

</application>


(9)

99

Workshop 7

Intent 1

A.

Tujuan

1. Memahami cara untuk membuat Intent Implisit

B.

Tugas Pendahuluan

1. Pelajari dan buat rangkuman mengenai Intent Android

C.

Percobaan

a.

Percobaan 1: Memantau Baterai dengan BroadcastReceiver

Langkah 1: Buat project Android baru pada Eclipse

Langkah 2: Tambahkan statement berikut pada main.xml <?xml version="1.0" encoding="utf-8"?>

<RelativeLayout

xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" > <TextView

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentTop="true"

android:layout_centerHorizontal="true"

android:gravity="center_horizontal"

android:text="Battery Information"

android:textSize="30px"


(10)

100

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentLeft="true"

android:layout_below="@+id/textView1"

android:gravity="center_horizontal"

android:text="Available power :" />

<TextView

android:id="@+id/txtView"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentLeft="true"

android:layout_below="@+id/textView1"

android:layout_marginTop="23dp"

android:padding="10dp" />

</RelativeLayout>

Langkah 3 : Lengkapi statement berikut pada class java MainActivity

package com.ai.intent;

import android.app.Activity;

import android.os.Bundle;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.content.IntentFilter;

import android.widget.TextView;

public class IntentBatteryActivity extends Activity {

private TextView txtBat;

private BroadcastReceiver mBatInfoRec = new BroadcastReceiver() {

@Override

public void onReceive(Context context, Intent intent) {

// TODO Auto-generated method stub

int level = intent.getIntExtra("level", 0);

txtBat.setText(String.valueOf(level)+ "%"); }

};

/** Called when the activity is first created. */ @Override

public void onCreate(Bundle icicle) {

super.onCreate(icicle);

setContentView(R.layout.main);


(11)

101

this.registerReceiver(this.mBatInfoRec, new IntentFilter (Intent.ACTION_BATTERY_CHANGED));

} }

Langkah 4 : Tekan F11 untuk mendebug aplikasi pada emulator Android Langkah 5 : Maka akan muncul tampilan layout sebagai berikut :

Gambar 36 Tampilan informasi Battery

b.

Percobaan 2: Membuat Intent Pemanggilan Telepon

Langkah 1: Buat project Android baru pada Eclipse Langkah 2: Tambahkan statement berikut pada main.xml <?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"


(12)

102

<TextView

android:id="@+id/label1"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:background="#ff0000cc"

android:text="This is Activity1"

android:textStyle="bold"

android:textSize="20sp" /> <EditText

android:id="@+id/text1"

android:layout_width="fill_parent"

android:layout_height="54px"

android:text="tel:555-1234"

android:textSize="18sp" /> <Button

android:id="@+id/btnCallActivity2"

android:layout_width="149px"

android:layout_height="wrap_content"

android:text="Make Phone Call"

android:textStyle="bold" /> </LinearLayout>

Langkah 3: Tambahkan statement berikut pada MainActivity.java

package com.example.intent;

import android.app.Activity;

import android.os.Bundle;

import android.content.Intent;

import android.net.Uri;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.*;

public class Intent1Activity extends Activity {

/** Called when the activity is first created. */ TextView label1;

EditText text1;

Button btnCallActivity2; @Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState); setContentView(R.layout.main); try{

setContentView(R.layout.main);

label1= (TextView)findViewById(R.id.label1); text1= (EditText)findViewById(R.id.text1);


(13)

103

btnCallActivity2=

(Button)findViewById(R.id.btnCallActivity2);

btnCallActivity2.setOnClickListener(new ClickHandler()); }

catch(Exception e) {

Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_LONG).show();

} }

private class ClickHandler implements OnClickListener{

@Override

public void onClick(View v) {

try{

// myActivity2 places a phone call // for ACTION_CALL or ACTION_DIAL

// use 'tel:' formatted data: "tel:555-1234" // for ACTION_VIEW use data:

"http://www.youtube.com"

// (you also need INTERNET permission -see Manifest)

String myData= text1.getText().toString(); Intent myActivity2 = new

Intent(Intent.ACTION_DIAL, Uri.parse(myData)); startActivity(myActivity2); }

catch(Exception e) {

Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_LONG).show();

} }//onClick }//ClickHandler }

Langkah 4: Pada AndroidManifest.xml perhatikan setiap baris kodenya sebagai berikut :

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.example.intent"

android:versionCode="1"

android:versionName="1.0" >

<uses-sdk android:minSdkVersion="8" /> <application

android:icon="@drawable/ic_launcher"

android:label="@string/app_name" > <activity

android:name=".Intent1Activity"

android:label="@string/app_name" > <intent-filter>


(14)

104

<category

android:name="android.intent.category.LAUNCHER" /> </intent-filter>

</activity> </application> </manifest>

Langkah 5 : Tekan F11 untuk mendebug aplikasi pada emulator Android

Gambar 37 Tampilan Panggilan Telpon

Langkah 6 : Click pada button [Make Phone Call], maka program akan melakukan panggilan telepon :


(15)

105 Gambar 38 Tampilan Phone Call

c.

Percobaan 3: Membuat Implisit Intent (lanjut)

Langkah 1: Buat project Android baru pada Eclipse Langkah 2: Tambahkan statement berikut pada main.xml <?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"> <Button

android:layout_height="wrap_content"

android:layout_width="match_parent" android:text="Pesan McDonald"

android:id="@+id/btnMcDonald"> </Button>

<Button

android:layout_height="wrap_content"

android:layout_width="match_parent" android:text="Pesan KFC"


(16)

106 android:id="@+id/btnKFC">

</Button> <Button

android:text="Belajar Android" android:layout_height="wrap_content"

android:layout_width="match_parent"

android:id="@+id/btnBelajarAndroid"> </Button>

<Button android:text="Jadwal Puasa" android:layout_height="wrap_content"

android:id="@+id/btnJadwalPuasa"

android:layout_width="match_parent"> </Button>

<Button

android:text="Ambil Gambar"

android:layout_height="wrap_content"

android:id="@+id/btnKamera"

android:layout_width="match_parent"> </Button>

</LinearLayout>

Langkah 3: Tambahkan statement berikut pada MainActivity.java

package com.agusharyanto.net.implicit.intent;

import android.app.Activity;

import android.content.Intent;

import android.net.Uri;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.Toast;

public class BelajarImplicitIntentActivity extends Activity {

/** Called when the activity is first created. */ @Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

Button btnMcDonald = (Button)findViewById(R.id.btnMcDonald); Button btnKFC = (Button)findViewById(R.id.btnKFC);

Button btnBelajarAndroid =

(Button)findViewById(R.id.btnBelajarAndroid); Button btnJadwalPuasa =

(Button)findViewById(R.id.btnJadwalPuasa);

Button btnKamera = (Button)findViewById(R.id.btnKamera);

btnMcDonald.setOnClickListener(new Button.OnClickListener(){


(17)

107

// getRequest(txtResult,txtUrl); CallIntent(v);

} });

btnKFC.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v){

// getRequest(txtResult,txtUrl); CallIntent(v);

} });

btnBelajarAndroid.setOnClickListener(new Button.OnClickListener(){

public void onClick(View v){ // getRequest(txtResult,txtUrl); CallIntent(v);

} });

btnJadwalPuasa.setOnClickListener(new Button.OnClickListener(){

public void onClick(View v){ // getRequest(txtResult,txtUrl); CallIntent(v);

} });

btnKamera.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v){

// getRequest(txtResult,txtUrl); CallIntent(v);

} }); }

public void CallIntent(View view) {

Intent intent = null;

switch (view.getId()) {

case R.id.btnKFC:

//akan melakukan Call ke nomor 14022 intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:14022"));

startActivity(intent);

break;

case R.id.btnMcDonald:

//akan melakukan Call ke nomor 14045 intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:14045"));

startActivity(intent);

break;

case R.id.btnBelajarAndroid:

//akan memanggil browser dan menampilkan website http://agusharyanto.net


(18)

108

intent = new Intent(Intent.ACTION_VIEW, Uri .parse("http://agusharyanto.net")); startActivity(intent);

break;

case R.id.btnJadwalPuasa:

//akan memanggil browser dan menampilkan website http://www.pkpu.or.id/imsyak/

intent = new Intent(Intent.ACTION_VIEW, Uri

.parse("http://www.pkpu.or.id/imsyak/")); startActivity(intent);

break;

case R.id.btnKamera:

//akan memanggil fungsi Camera android intent = new

Intent("android.media.action.IMAGE_CAPTURE"); startActivityForResult(intent, 0); break; default: break; } } @Override

public void onActivityResult(int requestCode, int resultCode,

Intent data) {

if (resultCode == Activity.RESULT_OK && requestCode == 0) { String result = data.toURI();

Toast.makeText(this, result, Toast.LENGTH_LONG); }

} }

Langkah 4: Pada AndroidManifest.xml tambahkan kode yang dicetak tebal sebagai berikut :

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.agusharyanto.net.implicit.intent"

android:versionCode="1"

android:versionName="1.0">

<uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon"

android:label="@string/app_name">

<activity android:name=".BelajarImplicitIntentActivity"

android:label="@string/app_name"> <intent-filter>


(19)

109

<category

android:name="android.intent.category.LAUNCHER" /> </intent-filter>

</activity> </application>

<uses-permission

android:name="android.permission.CALL_PRIVILEGED"></ uses-permission>

<uses-permission

android:name="android.permission.CALL_PHONE"></uses-permission> <uses-permission

android:name="android.permission.INTERNET"></uses-permission> <uses-permission

android:name="android.permission.CAMERA"></uses-permission>

</manifest>

Langkah 5 : Tekan F11 untuk mendebug aplikasi pada emulator Android Langkah 6 : Maka akan tampil output sebagai berikut :


(20)

110 Langkah 7 : Lakukan percobaan button satu per satu :

[Pesan McDonald] [Pesan KFC] [Belajar Android]

[Jadwal Puasa] [Ambil Gambar]


(1)

105

Gambar 38 Tampilan Phone Call

c.

Percobaan 3: Membuat Implisit Intent (lanjut)

Langkah 1: Buat project Android baru pada Eclipse

Langkah 2: Tambahkan statement berikut pada main.xml

<?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"> <Button

android:layout_height="wrap_content" android:layout_width="match_parent" android:text="Pesan McDonald"

android:id="@+id/btnMcDonald"> </Button>

<Button

android:layout_height="wrap_content" android:layout_width="match_parent" android:text="Pesan KFC"


(2)

106

android:id="@+id/btnKFC">

</Button> <Button

android:text="Belajar Android" android:layout_height="wrap_content"

android:layout_width="match_parent"

android:id="@+id/btnBelajarAndroid"> </Button>

<Button android:text="Jadwal Puasa" android:layout_height="wrap_content"

android:id="@+id/btnJadwalPuasa"

android:layout_width="match_parent"> </Button>

<Button

android:text="Ambil Gambar"

android:layout_height="wrap_content" android:id="@+id/btnKamera"

android:layout_width="match_parent"> </Button>

</LinearLayout>

Langkah 3: Tambahkan statement berikut pada MainActivity.java

package com.agusharyanto.net.implicit.intent;

import android.app.Activity; import android.content.Intent; import android.net.Uri;

import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast;

public class BelajarImplicitIntentActivity extends Activity { /** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.main);

Button btnMcDonald = (Button)findViewById(R.id.btnMcDonald); Button btnKFC = (Button)findViewById(R.id.btnKFC);

Button btnBelajarAndroid =

(Button)findViewById(R.id.btnBelajarAndroid); Button btnJadwalPuasa =

(Button)findViewById(R.id.btnJadwalPuasa);

Button btnKamera = (Button)findViewById(R.id.btnKamera);

btnMcDonald.setOnClickListener(new Button.OnClickListener(){


(3)

107

// getRequest(txtResult,txtUrl);

CallIntent(v); }

});

btnKFC.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v){

// getRequest(txtResult,txtUrl);

CallIntent(v); }

});

btnBelajarAndroid.setOnClickListener(new Button.OnClickListener(){

public void onClick(View v){ // getRequest(txtResult,txtUrl);

CallIntent(v); }

});

btnJadwalPuasa.setOnClickListener(new Button.OnClickListener(){

public void onClick(View v){ // getRequest(txtResult,txtUrl);

CallIntent(v); }

});

btnKamera.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v){

// getRequest(txtResult,txtUrl);

CallIntent(v);

} }); }

public void CallIntent(View view) { Intent intent = null;

switch (view.getId()) { case R.id.btnKFC:

//akan melakukan Call ke nomor 14022

intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:14022"));

startActivity(intent); break;

case R.id.btnMcDonald:

//akan melakukan Call ke nomor 14045

intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:14045"));

startActivity(intent); break;

case R.id.btnBelajarAndroid:

//akan memanggil browser dan menampilkan website http://agusharyanto.net


(4)

108

intent = new Intent(Intent.ACTION_VIEW, Uri

.parse("http://agusharyanto.net")); startActivity(intent);

break;

case R.id.btnJadwalPuasa:

//akan memanggil browser dan menampilkan website http://www.pkpu.or.id/imsyak/

intent = new Intent(Intent.ACTION_VIEW, Uri

.parse("http://www.pkpu.or.id/imsyak/")); startActivity(intent);

break;

case R.id.btnKamera:

//akan memanggil fungsi Camera android

intent = new

Intent("android.media.action.IMAGE_CAPTURE"); startActivityForResult(intent, 0); break;

default: break; }

}

@Override

public void onActivityResult(int requestCode, int resultCode, Intent data) {

if (resultCode == Activity.RESULT_OK && requestCode == 0) { String result = data.toURI();

Toast.makeText(this, result, Toast.LENGTH_LONG); }

} }

Langkah 4: Pada AndroidManifest.xml tambahkan kode yang dicetak tebal

sebagai berikut :

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.agusharyanto.net.implicit.intent"

android:versionCode="1" android:versionName="1.0">

<uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon" android:label="@string/app_name">

<activity android:name=".BelajarImplicitIntentActivity" android:label="@string/app_name">

<intent-filter>


(5)

109

<category

android:name="android.intent.category.LAUNCHER" /> </intent-filter>

</activity> </application>

<

uses-permission

android:name

=

"android.permission.CALL_PRIVILEGED"

></

uses-permission

>

<

uses-permission

android:name

=

"android.permission.CALL_PHONE"

></

uses-permission

>

<

uses-permission

android:name

=

"android.permission.INTERNET"

></

uses-permission

>

<

uses-permission

android:name

=

"android.permission.CAMERA"

></

uses-permission

>

</manifest>

Langkah 5 : Tekan F11 untuk mendebug aplikasi pada emulator Android

Langkah 6 : Maka akan tampil output sebagai berikut :


(6)

110

Langkah 7 : Lakukan percobaan button satu per satu :

[Pesan McDonald]

[Pesan KFC]

[Belajar Android]

[Jadwal Puasa]

[Ambil Gambar]