Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Android Location
1. I Putu Arya Dharmaadi, S.T., M.T.
Dosen Jurusan Teknologi Informasi
Universitas Udayana
http://aryadharmaadi.com
2. 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
3. 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
4. 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
5. 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);
6. 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
7. 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
8. 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
9. 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
}
10. 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
13. 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
15. 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
17. 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
18. 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
19. 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
20. 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
21. Next . . .
Google Maps
27 November 2015 http://aryadharmaadi.com 21
22. Referensi
Cinar, Onur. 2015. Android Quick APIs Reference.
Appres
27 November 2015 http://aryadharmaadi.com 22