Uploaded by Puspita Dewi Itoeakoe

Modul 5 - Broadcast Receivers and Notifications

advertisement
MODUL PRAKTIKUM
PEMROGRAMAN MOBILE II
5
Broadcast Receivers and Notifications
STMIK SINAR NUSANTARA
SURAKARTA
2017
Broadcast Receivers
Definisi dari Broadcast Receiver adalah sebuah komponen pada aplikasi android yang berfungsi
untuk menerima siaran (broadcast) pesan dari internal sistem android atau dari aplikasi tertentu
yang sudah terinstall di dalam os android. Pesan yang di broadcast oleh aplikasi disebut event (atau
system event, kalau berasal dari internal system android). Event-event yang bisa terjadi diantara
contohnya adalah seperti : kondisi level batere yang rendah (Low battery), perubahan level batere,
perangkat android terhubung dengan sumber listrik (power connected with the device), perangkat
android beralih (switch) ke flight mode (airplane mode), proses booting OS telah selesai (Boot
completed), perubahan tanggal sistem, dan sebagainya.
Untuk menerapkan Broadcast Receiver pada sebuah project dimulai dengan membuat object dari
Class BroadcastReceiver kemudian mendaftarkan (register) event pada file AndroidManifest.xml,
agar nantinya event dapat dideteksi oleh program. Selain mendaftarkan pada AndroidManifest,
event bisa juga didaftarkan pada class Activity pada saat activity dibentuk (onCreate) dengan
menggunakan method registerReceiver(). Sedangkan untuk melakukan event handling (action yang
dilakukan ketika event terjadi) dapat di definisikan pada method onReceive().
LATIHAN 1
Untuk memahami penerapan Broadcast Receiver buat aplikasi sebagai berikut :
1. Buat Project dengan nama LatBroadcastBatere !
2. Setelah project terbentuk, ubah MainActivity.java menjadi BatteryIndicatorActivity.java
3. Buat XML Layout untuk activity_main.xml sebagai berikut (copy-paste):
<?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:orientation="vertical" >
<TextView
android:id="@+id/textfield"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="40dip" />
<ProgressBar
android:id="@+id/progressbar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="20dip"
android:max="100"
android:maxHeight="500dip"
android:maxWidth="300dip"
android:minHeight="100dip"
android:minWidth="200dip" />
</LinearLayout>
4. Simpan perubahan dari file activity_main.xml !
Pemrograman Mobile II
Halaman 1
5. Buat coding untuk BatteryIndicatorActivity.java sebagai berikut :
6. Simpan dan jalankan projectnya pada emulator!
7. Untuk mensimulasikan perubahan level batere dapat dengan menggunakan tools adb.
Jalankan perintah adb pada command prompt seperti berikut :
a. Pindahkan folder aktif ke folder instalasi sdk terlebih dahulu :
b. Kemudian berikan perintah berikut:
adb shell dumpsys battery set level 70
c. Amati perubahan level batere yang dideteksi oleh aplikasi.
Pemrograman Mobile II
Halaman 2
8. Buat analisis project pada Laporan!
LATIHAN 2
Pada project berikut penerapan Broadcast Receiver digunakan untuk menjalankan aplikasi setiap
device dinyalakan (autostart app / setiap proses booting OS android telah selesai)
1. Buat project dengan nama LatihanAutostart !
2. Buat XML Layoutnya (activity_main.xml) sebagai berikut :
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rl1"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="101dp"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/tv1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/imageView1"
android:layout_centerHorizontal="true"
android:layout_marginTop="40dp"
android:gravity="center"
android:text="Auto Start"
android:textSize="30sp" />
</RelativeLayout>
3. Buat coding MainActivity.java sebagai berikut :
Pemrograman Mobile II
Halaman 3
4. Buat class BootupReceiver.java isikan codingnya sebagai berikut :
5. Tambahkan coding pada AndroidManifest sebagai berikut :
6. Jalankan Projectnya pada Emulator!
7. Restart Emulator, dan perhatikan bahwa aplikasi akan otomatis di jalankan ketika proses
Boot OS selesai.
8. Buat analisis project pada Laporan Praktikum!
Pemrograman Mobile II
Halaman 4
NOTIFICATIONS
Notification adalah mekanisme pemberitahuan untuk pengguna yang ditampilkan di luar area user
interface aplikasi pengguna (umumnya ditampilkan dibagian atas tampilan layar device).
Mirip seperti pop-up messages pada sistem operasi Windows, notification ini berguna untuk
memberikan informasi kepada pengguna akan terjadinya suatu event seperti SMS atau e-mail yang
masuk inbox, pengingat (reminder) jadwal, alarm jam, dan sebagainya. Penggunaan Toast meskipun
dapat memberikan pemberitahuan kepada pengguna, tetapi Toast hanya tampil dalam periode yang
singkat, setelah itu akan hilang dari tampilan user interface, sehingga pengguna kemungkinan tidak
mengetahui adanya peringatan tersebut. Notification dalam hal ini akan mengingat pesan
peringatan yang muncul, dan akan ditempatkan dalam tumpukan daftar, jadi meskipun muncul
beberapa kali notification yang berbeda, tidak akan hilang sampai pengguna menghapus notification
tersebut. Berikut ini contoh tampilan notifikasi yang muncul pada layar device.
Untuk membuat Notifikasi, langkah pertama yang perlu dilakukan adalah membuat object dengan
menggunakan NotificationBuilder, contoh codingnya adalah sebagai berikut :
Notification notification = new Notification.Builder(this)
.setContentTitle("Basic Notification")
.setContentText("Lorem ipsum dolor sitamet")
.setSmallIcon(R.drawable.ic_launcher).build();
notification.flags = Notification.FLAG_AUTO_CANCEL;
NotificationManager notificationManager = getNotificationManager();
notificationManager.notify(0, notification);
Properties dari Notification yang bisa digunakan diantaranya sebagai berikut :
Pemrograman Mobile II
Halaman 5
LATIHAN 3
Untuk memahami penerapan Notifications pada suatu aplikasi, serta berbagai macam bentuk
tampilan style dari suatu Notification buatlah project berikut :
1. Buat Project dengan nama LatihanNotification, set minSdkVersion="16"
2. Buat XML Layout untuk file activity_main.xml sebagai berikut (copy-paste):
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal">
<Button
android:id="@+id/btBasicNotification"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal|center_vertical"
android:onClick="sendBasicNotification"
android:text="BasicNotification"
/>
<Button
android:id="@+id/btBigTextNotification"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal|center_vertical"
android:onClick="sendBigTextStyleNotification"
android:text="BigTextNotification"
/>
<Button
android:id="@+id/btBigPictureNotification"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal|center_vertical"
android:onClick="sendBigPictureStyleNotification"
android:text="BigPictureNotification"
/>
</LinearLayout>
Simpan file tersebut, tampilan Layout xml seperti berikut :
Pemrograman Mobile II
Halaman 6
3. Buat XML Layout untuk file handle_notification_activity.xml sebagai berikut (copy-paste):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal|center_vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="HandleNotification"
android:textSize="20dp"
android:textStyle="bold|italic" />
</LinearLayout>
4. Buat coding untuk file HandleNotificationActivity.java sebagai berikut :
Pemrograman Mobile II
Halaman 7
5. Pada AndroidManifest daftarkan activity HandleNotificationActivity :
6. Buat icon Notification yaitu : ic_action
dan ic_share
dengan langkah berikut :
Klik Kanan folder /res/drawable-hdpi lalu pilih New – Other – Android – Android Icon set
Pilih Notification Icons, dan beri nama iconnya:
Pilih Clipart lalu klik Choose... untuk memilih icon
Pemrograman Mobile II
Halaman 8
7. Tempatkan sebuah file gambar dengan nama big_pic.png berukuran 200 x 100 pixel
pada folder : /res/drawable-hdpi
8. Buat coding untuk MainActivity.java sebagai berikut :
Pemrograman Mobile II
Halaman 9
Perhatikan coding pada bagian attribut dari Notification seperti setContentTitle, setContentText,
setTicker dan seterusnya.
Pending Intent digunakan nantinya untuk mengaktifkan Activity yang akan dijalankan ketika user
meng-klik notification pada layar. Activity yang akan dijalankan didefinisikan pada method
getPendingIntent() dibawah ini (coding dibawah masih merupakan lanjutan dari MainActivity.java).
Pemrograman Mobile II
Halaman 10
9. Simpan dan jalankan project pada Emulator!
10. Perhatikan variasi tampilan dari Notifikasi yang dimunculkan, buat analisa & kesimpulan
project pada Laporan!
TUGAS
1. Buat Project dengan nama TugasNotification yang akan menampilkan pesan Notification
apabila level Battery < 50 % !
2. Gunakan properties pada Notification seperti :
.setSound()
.setTicker()
.setSmallIcon()
3. Untuk mensimulasikan level battery < 50% gunakan perintah ini didalam command-prompt :
4. Tampilan Notification seperti berikut :
Pemrograman Mobile II
Halaman 11
Download