22
I Putu Arya Dharmaadi, S.T., M.T. Dosen Jurusan Teknologi Informasi Universitas Udayana http://aryadharmaadi.com

Android Location

Embed Size (px)

Citation preview

Page 1: Android Location

I Putu Arya Dharmaadi, S.T., M.T.

Dosen Jurusan Teknologi Informasi

Universitas Udayana

http://aryadharmaadi.com

Page 2: Android Location

Pendahuluan Pengaksesan lokasi terkini pengguna smartphone

Android akan memberikan nilai tambah pada aplikasi untuk memberikan konten yang sesuai dan lebih baik.

27 November 2015 http://aryadharmaadi.com 2

Page 3: Android Location

Location Permission Oleh karena melacak lokasi terkini pengguna bisa

menyebabkan masalah privasi, pemanfaatan API lokasi dilindungi oleh beberapa permission

Hanya aplikasi dengan permission yang benar saja diijinkan untuk mengakses lokasi pengguna

27 November 2015 http://aryadharmaadi.com 3

Page 4: Android Location

Location Permission (2) Android menyediakan 2 permission untuk lokasi:

android.permission.ACCESS_COARSE_LOCATION

mengijinkan aplikasi untuk mengakses perkiraan lokasi dari pengguna. Informasi lokasi didapatkan dari lokasi jaringan, seperti WiFi dan BTS

android.permission.ACCESS_FINE_LOCATION

mengijinkan aplikasi untuk mengakses lokasi yang tepat dari pengguna. Informasi lokasi didapatkan dari kombinasi GPS dan lokasi jaringan

27 November 2015 http://aryadharmaadi.com 4

Page 5: Android Location

Location Manager Developer bisa mengakses ke sensor lokasi pada device

melalui Android location service

Location service diakses melalui API Location Manager, yang dipanggil dengan cara sebagai berikut:

27 November 2015 http://aryadharmaadi.com 5

LocationManager locationManager =(LocationManager)

getSystemService(Context.LOCATION_SERVICE);

Page 6: Android Location

Location Provider Location service bergantung pada location provider

untuk mengakses lokasi terkini dari pengguna

Android mendukung 3 location provider berikut:

GPS_PROVIDER

Menentukan lokasi menggunakan satelit GPS. Tergantung dari kondisi lingkungan, provider ini membutuhkan waktu beberapa saat untuk mendapatkan lokasi yang fix dari pengguna.

Membutuhkan ACCESS_FINE_LOCATION permission

27 November 2015 http://aryadharmaadi.com 6

Page 7: Android Location

Location Provider (2) NETWORK_PROVIDER

Menentukan lokasi melalui ketersediaan BTS dan WiFi access point.

Membutuhkan ACCESS_COARSE_LOCATION permission

PASSIVE_PROVIDER

Menentukan lokasi tanpa meminta lokasi fix saat ini. Artinya, provider ini bergantung pada lokasi yang pernah diminta oleh aplikasi lainnya.

Membutuhkan ACCESS_FINE_LOCATION permission

27 November 2015 http://aryadharmaadi.com 7

Page 8: Android Location

Memeriksa Ketersediaan Location Provider Tidak semua location provider selalu tersedia di setiap

waktu

Hal ini disebabkan karena android mengijinkan pengguna untuk menghidupkan atau mematikan location provider melalui menu pengaturan

Artinya, location provider tidak bisa digunakan ketika misalnya WiFi pada device android dimatikan atau ketika mode pesawat diaktifkan

27 November 2015 http://aryadharmaadi.com 8

Page 9: Android Location

Memeriksa Ketersediaan Location Provider (2) Untuk itu, diperlukan pengecekan status dari location

provider sebagai berikut:

27 November 2015 http://aryadharmaadi.com 9

if (locationManager.isProviderEnabled(

LocationManager.GPS_PROVIDER)) {

// Use the GPS provider

} else {

// Use an other provider

}

Page 10: Android Location

Listening State Changes Ketika pengguna memutuskan untuk mematikan atau

menghidupkan location provider melalui menu pengaturan, maka aplikasi akan mendapatakan broadcast message dengan aksi android.location.PROVIDERS_CHANGED

Dengan demikian, aplikasi bisa melakukan aksi berdasarkan event tersebut, misalnya berpindah untuk menggunakan GPS location provider ketika layanan tersebut diaktifkan oleh pengguna

27 November 2015 http://aryadharmaadi.com 10

Page 11: Android Location

Listening State Changes (2)

27 November 2015 http://aryadharmaadi.com 11

Page 12: Android Location

Listening State Changes (3)

27 November 2015 http://aryadharmaadi.com 12

Page 13: Android Location

Location Update Android menyediakan cara untuk mendapatkan

update lokasi terkini dari pengguna

Untuk mendapatkan update lokasi, aplikasi melakukan register pada location listener melalui kelas LocationManager

Berikut merupakan contoh untuk implementasi LocationListener

27 November 2015 http://aryadharmaadi.com 13

Page 14: Android Location

27 November 2015 http://aryadharmaadi.com 14

Page 15: Android Location

Informasi pada Location Update Objek location pada saat mendapatkan location

update mengandung informasi sebagai berikut:

Accuracy : perkiraan akurasi dalam satuan meter

Altitude : hasil pengukuran berdasarkan World Geodetic System (WGS) 84 dengan satuan meter

Bearing : arah / haluan dalam satuan derajat

Latitude dan longitude : posisi koordinat dalam derajat

Provider : nama location provider

Time : waktu

27 November 2015 http://aryadharmaadi.com 15

Page 16: Android Location

Register untuk Update Lokasi

27 November 2015 http://aryadharmaadi.com 16

Page 17: Android Location

Unregistering Oleh karena penggunaan location akan membuat

baterai device berkurang secara signifikan, aplikasi sebaiknya melakukan unregister dari location update ketika memang sudah tidak dibutuhkan.

Caranya adalah:

27 November 2015 http://aryadharmaadi.com 17

Page 18: Android Location

Single Location Update Aplikasi juga bisa hanya meminta single location

update pada Android

Setelah mendapatkan single location update, fitur lokasi pada device otomatis akan dimatikan

Caranya adalah sebagai berikut:

27 November 2015 http://aryadharmaadi.com 18

Page 19: Android Location

Menggunakan Last Known Location Untuk mendapatkan lokasi yang fix melalui GPS akan

memakan waktu yang cukup lama

Oleh karena itu, developer bisa mensiasati waktu yang lama tersebut dengan memanfaatkan last known location untuk mendapatkan lokasi terakhir yang pernah di-request oleh aplikasi Android

Caranya adalah:

27 November 2015 http://aryadharmaadi.com 19

Page 20: Android Location

Penutup Platform Android menyediakan informasi lokasi

kepada aplikasi yang berjalan di atasnya

Dalam rangka pemenuhan informasi lokasi, platform Android mendukung penggunaan GPS location provider dan network location provider

Atas alasan privasi, aplikasi wajib mendapatkan permission untuk bisa mengakses lokasi terkini dari pengguna

27 November 2015 http://aryadharmaadi.com 20

Page 21: Android Location

Next . . . Google Maps

27 November 2015 http://aryadharmaadi.com 21

Page 22: Android Location

Referensi Cinar, Onur. 2015. Android Quick APIs Reference.

Appres

27 November 2015 http://aryadharmaadi.com 22