Get GPS Status on location changed

前端 未结 3 1572
情书的邮戳
情书的邮戳 2020-12-06 23:15

I am using GPS services to derive latitude & longitude in my App. I am able to get the latitude and longitude when the signal is avialable. Once i get a fix, if i have t

相关标签:
3条回答
  • 2020-12-06 23:34

    It sounds like you want to get the current location, and you want to know when a current location is unknown, so you do not try to use an old location. In that case, you can try to get the current location, and then test if it is old or not.

    long fresh=60000; // 1 minute in milliseconds
    if(System.currentTimeMillis()-location.getTime()>fresh)
        // Do something useful with location
    
    0 讨论(0)
  • 2020-12-06 23:46

    If you could not get the location using GPS, you may need to get the location using NETWORK PROVIDER and compare with you last location fix to know which one is better and use accordingly.

    0 讨论(0)
  • 2020-12-06 23:48

    Use NETWORK_PROVIDER instead to get updated location all time. like this..

    public Location getLocation() {
            try {
                locationManager = (LocationManager) mContext
                        .getSystemService(Context.LOCATION_SERVICE);
    
                // getting GPS status
                isGPSEnabled = locationManager
                        .isProviderEnabled(LocationManager.GPS_PROVIDER);
    
                // getting network status
                isNetworkEnabled = locationManager
                        .isProviderEnabled(LocationManager.NETWORK_PROVIDER);
    
                if (!isGPSEnabled && !isNetworkEnabled) {
                    // no network provider is enabled
                } else {
                    this.canGetLocation = true;
                    if (isNetworkEnabled) {
                        locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListenerNetwork);
    //                  locationManager.requestLocationUpdates(
    //                          LocationManager.NETWORK_PROVIDER,
    //                          MIN_TIME_BW_UPDATES,
    //                          MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                        Log.d("Network", "Network");
                        if (locationManager != null) {
                            location = locationManager
                                    .getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
                            if (location != null) {
                                latitude = location.getLatitude();
                                longitude = location.getLongitude();
                            }
                        }
                    }
                    // if GPS Enabled get lat/long using GPS Services
                    if (isGPSEnabled){
                        if (location == null){
                            locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListenerGps);
    //                      locationManager.requestLocationUpdates(
    //                              LocationManager.GPS_PROVIDER,
    //                              MIN_TIME_BW_UPDATES,
    //                              MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                            Log.d("GPS Enabled", "GPS Enabled");
                            if (locationManager != null) {
                                location = locationManager
                                        .getLastKnownLocation(LocationManager.GPS_PROVIDER);
                                if (location != null) {
                                    latitude = location.getLatitude();
                                    longitude = location.getLongitude();
                                }
                            }
                        }
                    }
                }
    //          if (!isGPSEnabled) {
    //              showSettingsAlert();
    //          } 
            } catch (Exception e){
                e.printStackTrace();
            }
    
            return location;
        }
    

    Hope this helps

    0 讨论(0)
提交回复
热议问题