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

Android Location

  • 1.
    I Putu AryaDharmaadi, S.T., M.T. Dosen Jurusan Teknologi Informasi Universitas Udayana http://aryadharmaadi.com
  • 2.
    Pendahuluan  Pengaksesan lokasiterkini 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  Olehkarena 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  Developerbisa 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  Locationservice 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
  • 11.
    Listening State Changes(2) 27 November 2015 http://aryadharmaadi.com 11
  • 12.
    Listening State Changes(3) 27 November 2015 http://aryadharmaadi.com 12
  • 13.
    Location Update  Androidmenyediakan 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
  • 14.
    27 November 2015http://aryadharmaadi.com 14
  • 15.
    Informasi pada LocationUpdate  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
  • 16.
    Register untuk UpdateLokasi 27 November 2015 http://aryadharmaadi.com 16
  • 17.
    Unregistering  Oleh karenapenggunaan 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 KnownLocation  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 Androidmenyediakan 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