DeretCode|

Tips, Trik dan Tutorial
Seputar IT, Coding, Internet Marketing, Keahlian, Pendidikan, Hobi Dan Lainnya
Night :

Cara Mendapatkan Lokasi Terkini Menggunakan Gps Atau Network Provider Android

advertisement
    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.

Implementasi LocationManager

  1. Silahkan kalian buka project androidnya dan buat class bernama GetCurLocation
  2. Kemudian kita implementasikan class interface LocationListener untuk mengatur callback yang di perlukan
  3. Silahkan arahkan kursor ke nama classnya kemudian pada keyboard tekan Alt + Enter atau klik icon lampunya, dan kemudian kalian klik impement methods.
  4. Kemudian silahkan kalian implementasi semua metodenya dan klik ok
  5. 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

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!
advertisement



0 Komentar untuk " Cara Mendapatkan Lokasi Terkini Menggunakan Gps Atau Network Provider Android"

Silahkan berkomentar dengan baik dan bijak!