TUGAS PAPB: MENERAPKAN
ACTIVITY DAN INTENT PADA ANDROID
Activity adalah window yang berisi
antarmuka pengguna/user dengan aplikasi Anda. Aplikasi bisa memiliki activity
atau tidak sama sekali. Namun pada umumnya aplikasi memiliki satu atau
lebih activity dan tujuan utama sebuah activity adalah untuk
berinteraksi dengan pengguna/user.
Bagian dari activity yang mempunyai konsep unik lainnya di dalam
Android adalah intent. Pada dasarnya
intent adalah perekat yang dapat mengaktifkan activity-activity berbeda dari aplikasi-aplikasi yang berbeda untuk bekerja bersama, memastikan bahwa tugas-tugas dapat
dilaksanakan seolah activity-activity tersebut hanya milik satu aplikasi.
Agar lebih memahami
mengenai penggunaan intent maka saya membuat 2 aplikasi, yaitu aplikasi untuk
mengirim email dan apliasi untuk webview, phone dial, dan mengakses phone
contact.
1.
APLIKASI UNTUK MENGIRIM
EMAIL
Untuk membuat aplikasi seperti yang ditunjukkan
pada gambar di atas maka caranya adalah buat projek baru pada eclipse kemudian
pada layout XML ketikan kode berikut:
1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
2. xmlns:tools="http://schemas.android.com/tools"
3. android:layout_width="match_parent"
4. android:layout_height="match_parent"
5. android:paddingBottom="@dimen/activity_vertical_margin"
6. android:paddingLeft="@dimen/activity_horizontal_margin"
7. android:paddingRight="@dimen/activity_horizontal_margin"
8. android:paddingTop="@dimen/activity_vertical_margin"
9. tools:context="com.example.ngirimemail.MainActivity" >
10. <Button android:id="@+id/sendEmail"
11. android:layout_width="fill_parent"
12. android:layout_height="wrap_content"
13.
android:text="@string/compose_email"/>
14. </RelativeLayout>
Kode pada baris 11 hingga baris 15
adalah baris kode yang digunakan untuk membuat button. Tulisan “Tulis Email”
pada button tersebut didapat dari kode baris 14, dimana string “Tulis Email”
sudah saya deklarasikan pada variabel compose_email
yang terletak pada file res/values/string.xml
Tahap selanjutnya setelah membuat layout.xml
adalah membuat class untuk pemroses layout tersebut. Maka dari itu saya membuat
class dengan nama MainActivity.java yang berisi baris kode berikut:
1. public class MainActivity extends Activity {
2. protected void onCreate(Bundle savedInstanceState) {
3. super.onCreate(savedInstanceState);
4. setContentView(R.layout.activity_main);
5. Button startBtn = (Button)
findViewById(R.id.sendEmail);
6. startBtn.setOnClickListener(new
View.OnClickListener() {
7. public void onClick(View view) {
8. sendEmail();
9. }
10.
});
11.
}
12. protected void sendEmail() {
13. Intent emailIntent = new Intent(Intent.ACTION_SEND);
14. emailIntent.setData(Uri.parse("mailto:"));
15. emailIntent.setType("text/plain");
16. emailIntent.putExtra(Intent.EXTRA_EMAIL,"");
17. emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Your
subject");
18. emailIntent.putExtra(Intent.EXTRA_TEXT, "Email message
goes here");
19. try {
20. startActivity(Intent.createChooser(emailIntent, "Send
mail..."));
21. finish();
22. Log.i("Finished
sending email...", "");
23. } catch
(android.content.ActivityNotFoundException ex) {
24. Toast.makeText(MainActivity.this,
25. "There is no
email client installed.", Toast.LENGTH_SHORT).show();
26. }
27.
}
Tidak semua baris dari
class MainActivity.java yang saya tunjukkan, namun baris kode diatas adalah baris yang berperan utama dalam program
tersebut. Baris no. 4 menandakan bahwa activity ini mengacu pada file / layout
xml yang telah kita buat sebelumnya, yaitu activity_main.xml.
Baris no. 5 hingga no.8
mengacu pada button yang telah kita buat pada file xml sebelumnya, dimana jika
button tersebut di klik maka akan memicu method sendEmail().
Method sendEmail sendiri ditulis pada baris
no.12 hingga no.26. Baris no. 13 berfungsi untuk pembuatan Intent dengan nama emailIntent. ACTION_SEND merupakan key intent
yang digunakan untuk mengirim data pada aplikasi / user yang lain (Dalam kasus
ini untuk mengirim email). Baris ke 15 berfungsi untuk men-set intent bahwa
intent tersebut memiliki tipe text. Baris ke 16 hingga 18 berfungsi untuk
mengambil serta mengirim data berupa email tujuan, subject, serta isi pesan.
Kode putExtra bertujuan untuk mengirimkan data.
Parameternya sendiri adalah key dan data. Intent yang sudah kita buat tersebut
dipanggil dengan menggunakan class startActivity.
2. APLIKASI UNTUK MENGAKSES BROWSER, PHONE DIAL,
DAN PHONE CONTACT
Nantinya, jika tombol-tombol pada aplikasi
tersebut ditekan, maka aplikasi akan menjalankan action tertentu sesuai dengan
tombol yang ditekan. Misalkan, user menekan tombol Web browser, maka aplikasi
akan membuka browser dan membuka alamat kalengmadu.blogspot.com, karena data
URL sudah diset saat pembuatan program. Untuk membuat tampilan sepeti pada
gambar diatas, maka saya membuat layout aktivitas_utama.xml:
1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
2. android:orientation="vertical"
3. android:layout_width="fill_parent"
4. android:layout_height="fill_parent"
5. >
6. <Button
7. android:id="@+id/btn_webBrowser"
8. android:layout_width="fill_parent"
9. android:layout_height="wrap_content"
10. android:text="Web
Browser" />
11. <Button
12. android:id="@+id/btn_makeCalls"
13. android:layout_width="fill_parent"
14. android:layout_height="wrap_content"
15. android:text="Buat
Panggilan" />
16. <Button
17. android:id="@+id/btn_chooseContact"
18. android:layout_width="fill_parent"
19. android:layout_height="wrap_content"
20. android:text="Pilih
Kontak" />
21. </LinearLayout>
Tentunya
teman-teman sudah tau maksud dari baris kode diatas. Baris kode di atas
bertujuan untuk membuat 3 button, dimana button yang pertama dengan id btn_webBrowser digunakan untuk membuka
URL pada browser, button kedua dengan id btn_makeCalls
digunakan untuk men-dial nomor telepon, dan button ketiga dengan id btn_chooseContact digunakan untuk
mengakses phone contact yang ada pada smartphone anda.
Tentunya tahap berikutnya adalah mengedit file
.java untuk memproses layout yang sudah kita buat. Aktivitas tersebut saya
simpan pada file AktivitasUtama.java yang beris kodenya sebagai berikut:
1. public class AktivitasUtama extends ActionBarActivity {
2. Button b1,b2,b3,b4;
3. int request_code=1;
4. @Override
5. public void onCreate(Bundle savedInstanceState) {
6. super.onCreate(savedInstanceState);
7. setContentView(R.layout.aktivitas_utama);
8. //TOMBOL UNTUK WEB
BROWSER
9. b1=(Button)
findViewById(R.id.btn_webBrowser);
10. b1.setOnClickListener(new OnClickListener()
11. {
12. @Override
13. public void onClick(View v) {
14. Intent i = new
Intent(android.content.Intent.ACTION_VIEW,Uri.parse("http://kalengmadu.blogspot.com"));
15. startActivity(i);
16. }
17. });
18. //TOMBOL UNTUK
CALLING
19. b2=(Button)
findViewById(R.id.btn_makeCalls);
20. b2.setOnClickListener(new OnClickListener() {
21. @Override
22. public void onClick(View v) {
23. Intent i = new
Intent(android.content.Intent.ACTION_DIAL);
24. startActivity(i);
25. }
26. });
27. //TOMBOL UNTUK
CONTACT HAPE
28. b3=(Button)
findViewById(R.id.btn_chooseContact);
29. b3.setOnClickListener(new OnClickListener() {
30. @Override
31. public void onClick(View v) {
32. Intent i = new
Intent(android.content.Intent.ACTION_PICK);
33. i.setType(ContactsContract.Contacts.CONTENT_TYPE);
34. startActivityForResult(i, request_code);
35. }
36. });
37. }
38. public void onActivityResult (int requestCode, int resultCode, Intent data)
39. {
40. if (requestCode == request_code)
41. {
42. if (resultCode == RESULT_OK)
43. {
44. Toast.makeText(this, data.getData().toString(),
45. Toast.LENGTH_SHORT).show();
46. Intent i = new
Intent(android.content.Intent.ACTION_VIEW,
47. Uri.parse(data.getData().toString()));
48. startActivity(i);
49. }
50. }
51. }
Seperti tampak contoh di atas, Anda telah menggunakan class Intent
untuk melibatkan beberapa aplikasi built-in Android (seperti Phone,
Contacts dan Browser). Dalam Android, Intent biasanya datang
berpasangan: tindakan dan data. Tindakan menggambarkan apa yang
dilakukan, seperti meng-edit item, menampilkan content dari item dan lain-lain.
Data menentukan data obyeknya, seperti seseorang ada di dalam database Contacts.
Data ditentukan sebagai object Uri seperti contoh berikut:
·
ACTION_VIEW
·
ACTION_DIAL
·
ACTION_PICK
Contoh
data:
·
http://www.google.com
·
tel:+6281249638523
·
content://contacts
tindakan
dan data berpasangan menggambarkan operasi yang dilakukan. Contoh, untuk dial
nomor telpon, Anda menggunakan ACTION_DIAL/tel:+6281252080603. Untuk
menampilkan daftar contacts yang tersimpan dalam telpon, Anda menggunakan pasangan ACTION_VIEW/content://contacts. Untuk mengambil
contact dari daftar contact, Anda menggunakan pasangan ACTION_PICK/content://contacts. Dalam
tombol/button pertama, Anda membuat object Intent kemudian menyertakan dua
argument ke setiap constructor – tindakan dan data:
Intent i = new Intent(android.content.Intent.ACTION_VIEW,
Uri.parse("http://kalengmadu.blogspot.com"));
startActivity(i);
Tindakan
disini diwakili oleh konstanta android.content.Intent.ACTION_VIEW. Gunakan
method parse() dari class Uri untuk mengkonversi string URL menjadi object
Uri. Konstanta android.content.Intent.ACTION_VIEW sebenarnya merujuk ke
tindakan “android.intent.action.VIEW”, sehingga pernyataan sebelumnya dapat
ditulis ulang menjadi:
Intent i = new Intent("android.intent.action.VIEW",
Uri.parse("http://
kalengmadu.blogspot.com
"));
startActivity(i);
Potongan
kode sebelumnya dapat juga ditulis ulang menjadi seperti berikut:
Intent i = new Intent("android.intent.action.VIEW");
i.setData(Uri.parse("http://
doditsuprianto.com "));
startActivity(i);
Disini,
Anda menge-set data secara terpisah menggunakan method setData(). Untuk
tombol kedua, Anda men-dial nomor tertentu dengan cara menuliskan nomor telpon
di bagian argument data:
Intent i = new Intent(android.content.Intent.ACTION_DIAL,
Uri.parse("tel:+ 6281249638524"));
startActivity(i);
Dalam kasus
ini, dialer akan menampilkan angka yang akan dipanggil. User harus menekan
tombol
dial untuk
men-dial nomor tersebut. Jika Anda ingin memanggil/call secara langsung tanpa
campur
tangan
user, ubah tindakan/action menjadi:
Intent i = new Intent(android.content.Intent.ACTION_CALL,
Uri.parse("tel:+6281249638524"));
startActivity(i);
Jika Anda
hendak menampilkan dialer tanpa menentukan nomor telpon apapun, maka caranya sederhana
yaitu abaikan pada bagian data, seperti berikut ini:
Intent i = new Intent(android.content.Intent.ACTION_DIAL);
startActivity(i);
Tombol ketiga melibatkan aplikasi Contacts untuk menampilkan daftar
kontak kemudian memanggil salah satu kontak user. Karena Anda meminta user untuk
memilih kontak, maka Anda perlu aplikasi Contacts untuk mengembalikan nilai;
dalam kasus ini Anda harus men-set tipe data untuk memberitaukan jenis data apa
yang akan dikembalikan:
Intent i = new Intent(android.content.Intent.ACTION_PICK);
i.setType(ContactsContract.Contacts.CONTENT_TYPE);
startActivityForResult(i, request_Code);
Karena Anda mengharapkan hasil dari aplikasi Contacts, maka Anda
melibatkan aplikasi kontak dengan menggunakan method startActivityForResult,
mengirimnya ke dalam object Intent dan request code. Nantinya Anda perlu
mengimplementasikan method onActivityResult untuk mendapatkan hasil dari
activity.
2.
MEMBUAT FILE .APK
Untuk mendeploy aplikasi anda ke smartphone. Maka caranya adalah dengan
mengexport nya untuk dijadikan file berekstensi .apk, caranya adalah:
Klik menu file pada eclipse, kemudian pilih export, dan pilih Export android Application.
Kemudian klik next hingga muncul tampilan seperti berikut ini,
Pastikan anda memilih nama apliakasi
yang akan anda export. Dalam kasus ini saya memilih “AplikasiDial”.
Selanjutnya klik next, dan anda diminta untuk
membuat file berekstensi .key dimana file tersebut bertujuan apabila anda akan
mengupdate aplikasi anda nantinya, pilih create
new store dan tentukan direktori penyimpanan key tersebut, serta jangan
lupa untuk mengisi password dari key tersebut.
Jika sudah
maka klik next, dan anda diminta untuk mengisi beberapa form seperti pada gambar
berikut,
Jika sudah
maka klik next, kemudian tentukan lokasi direktori penyimpanan file .apk
Sampai disini proses pembuatan file .apk sudah selesai. Simpan file
tersebut ke smartphone anda dan lakukan proses instalasinya. Namun sebelumnya
lakukan perubahan pengaturan pada smartphone anda dengan cara masuk ke setting
-> system -> security , dan centang pada bagian berikut ini.
Lakukan proses instalasi:
Buka program Aplikasi Dialku
0 Komentar
Penulisan markup di komentar