Halo sobat, kali ini saya akan kembali berbagi tutorial pemrogramman aplikasi android. Tapi sebelumnya saya menganggap para pembaca sekalian sudah bisa membuat proyek aplikasi android. Seperti yang tertera pada judul di atas yaitu cara mengetahui lokasi kita sekarang dengan memanfaatkan gps atau provider seluler.
Baik kita langsung saja ke tutorialnya, di sini saya menggunakan java ya sobat.
advertisement
Implementasi LocationManager
- Silahkan kalian buka project androidnya dan buat class bernama GetCurLocation
- Kemudian kita implementasikan class interface LocationListener untuk mengatur callback yang di perlukan
- Silahkan arahkan kursor ke nama classnya kemudian pada keyboard tekan Alt + Enter atau klik icon lampunya, dan kemudian kalian klik impement methods.
- Kemudian silahkan kalian implementasi semua metodenya dan klik ok
- Kemudian silahkan tulis code berikut di dalamnya
package com.zain.tutorialgson; import android.Manifest; import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; import android.content.pm.PackageManager; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.support.v4.app.ActivityCompat; import android.util.Log; public class GetCurLocation implements LocationListener { //object untuk lm menggunakan Gps provider LocationManager locationManagerGps; //object untuk lm menggunakan network provider LocationManager locationManagerNetwork; // Minimal perubahan jarak untuk memperharui lokasi private static final long MINIMAL_DISTANCE_CHANGE_FOR_UPDATES = 10; // 10 meter // Minimal waktu untuk memperharui location private static final long MINIMAL_TIME_BW_UPDATES = 1000 * 60 * 1; // 1 menit //Contructor untuk menset context dan mencreate object locationmanager yang sudah didefinisikan public GetCurLocation(Context context) { if (ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, 101); locationManagerGps = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); locationManagerGps.requestLocationUpdates(LocationManager.GPS_PROVIDER, MINIMAL_TIME_BW_UPDATES, MINIMAL_DISTANCE_CHANGE_FOR_UPDATES, this); locationManagerNetwork.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, MINIMAL_TIME_BW_UPDATES, MINIMAL_DISTANCE_CHANGE_FOR_UPDATES, this); getLocation(); } } //Methode untuk mengambil lokasinya @SuppressLint("MissingPermission") public Location getLocation() { try { if (locationManagerGps.isProviderEnabled(LocationManager.GPS_PROVIDER)) { return locationManagerNetwork.getLastKnownLocation(LocationManager.GPS_PROVIDER); } else { return locationManagerNetwork.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); } }catch (Exception e) { Log.d("Log",e.getMessage()); return null; } } @Override public void onLocationChanged(Location location) { Log.d("Log","callback ketika lokasi berubah"); } @Override public void onStatusChanged(String provider, int status, Bundle extras) { Log.d("Log","callback ketika Status Perubahan"); } @Override public void onProviderEnabled(String provider) { Log.d("Log","callback ketika mengaktifkan pengambilan lokasi menggunakan provider"); } @Override public void onProviderDisabled(String provider) { Log.d("Log","callback ketika menonaktifkan pengambilan lokasi menggunakan provider"); } }
Penjelasan: Kita memisahkan antara locationManager menggunakan gps dan network, jika gps nya mode akurat yang akan digunakan adalah locationManager gps tapi kalo gps mode hemat daya, yang akan di gunakan adalah locationManager network. Object locationManager di buat di contructor, jadi ketika kita membuat object dari class GetCurLocation, object locationManagernya langsung di buat. Dan untuk mengambil data location, kita menggunakan geLocation.
Cara Menggunakan
advertisement
Jika class GetCurLocation tadi sudah dibuat, kalian sudah dapat menggunakan di class activity kalian, codenya seperti berikut,
GetCurLocation getcurLocation = new GetCurLocation(getApplicationContext());
Location curLocation = getcurLocation.getLocation();
Ingat ya sobat nilai datri getcurLocation.getLocation() akan selalu berubah, ketika kalian berpindah tempat.
Sekian dulu tutorial cara mendapatkan lokasi terkini di android menggunakan gps atau network, terimakasih sudah mampir. Jangan lupa di share jika kalian merasa artikel ini bermanfaat, kalau ada pertanyaan silahkan tulis di kolom komentar. Good Luck!
Silahkan berkomentar dengan baik dan bijak!