How to get gps location once for 5 mins android?

前端 未结 4 1836
独厮守ぢ
独厮守ぢ 2021-02-01 10:55

hi there can anybody give me a sample code for get location for every five minutes please i have tried and i can get location once by cliking on button, but i need it to be disp

4条回答
  •  栀梦
    栀梦 (楼主)
    2021-02-01 11:14

    Here is the code for getting location and set the listener for gps to get current location on few minute and distance, also I have used runnable object to get the location on every few minutes.

    Location gpslocation = null;
    
    private static final int GPS_TIME_INTERVAL = 60000; // get gps location every 1 min
    private static final int GPS_DISTANCE= 1000; // set the distance value in meter
    
    /*
       for frequently getting current position then above object value set to 0 for both you will get continues location but it drown the battery
    */
    
    private void obtainLocation(){
    if(locMan==null)
        locMan = (LocationManager) getSystemService(LOCATION_SERVICE);
    
        if(locMan.isProviderEnabled(LocationManager.GPS_PROVIDER)){
            gpslocation = locMan.getLastKnownLocation(LocationManager.GPS_PROVIDER);
            if(isLocationListener){
                 locMan.requestLocationUpdates(LocationManager.GPS_PROVIDER, 
                            GPS_TIME_INTERVAL, GPS_DISTANCE, GPSListener);
                    }
                }
            }
    }
    

    Now use this method to get the current location and the listener was called on location change with every 1 min and 1000 meter of distance.

    For getting every 5 min you can use this handler and runnable to get this location on well set period time:

    private static final int HANDLER_DELAY = 1000*60*5;
    
    Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
            public void run() {
                myLocation = obtainLocation();
                handler.postDelayed(this, HANDLER_DELAY);
            }
        }, START_HANDLER_DELAY);
    

    Here is GPS listener for location change event:

    private LocationListener GPSListener = new LocationListener(){
        public void onLocationChanged(Location location) {
            // update location
            locMan.removeUpdates(GPSListener); // remove this listener
        }
    
        public void onProviderDisabled(String provider) {
        }
    
        public void onProviderEnabled(String provider) {
        }
    
        public void onStatusChanged(String provider, int status, Bundle extras) {
        }
    };
    

    You can set interval time for listener and handler same for getting GPS location.

提交回复
热议问题