Index of /Kuliah2016-2017/Struktur & Pemakaian Teknologi Game
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 EclipseLangkah 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
<categoryandroid: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)