I Putu Arya Dharmaadi, S.T., M.T. Dosen Jurusan Teknologi Informasi Universitas Udayana http://aryadharmaadi.com
I Putu Arya Dharmaadi, S.T., M.T.
Dosen Jurusan Teknologi Informasi
Universitas Udayana
http://aryadharmaadi.com
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
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
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
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);
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
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
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
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
}
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
Listening State Changes (2)
27 November 2015 http://aryadharmaadi.com 11
Listening State Changes (3)
27 November 2015 http://aryadharmaadi.com 12
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
27 November 2015 http://aryadharmaadi.com 14
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
Register untuk Update Lokasi
27 November 2015 http://aryadharmaadi.com 16
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
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
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
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
Next . . . Google Maps
27 November 2015 http://aryadharmaadi.com 21
Referensi Cinar, Onur. 2015. Android Quick APIs Reference.
Appres
27 November 2015 http://aryadharmaadi.com 22