Get GPS Status on location changed

匿名 (未验证) 提交于 2019-12-03 01:54:01

问题:

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 to go to a place where the GPS is not able to get a location fix, it still shows the last location. I want to get the current location and not otherwise. I have tried using onLocationChanged() and onGpsStatusChanged() both to get the GPS status but it isnt giving me the result.

@Override public void onGpsStatusChanged(int arg0) {     // TODO Auto-generated method stub     if (event == GpsStatus.GPS_EVENT_STARTED) {         Log.d("zmenaGPS" , "GPS event started ");         GpsStatus gs = mlocManager.getGpsStatus(null);         Toast.makeText(getApplicationContext(),String.valueOf(gs),Toast.LENGTH_LONG).show();      } else if (event == GpsStatus.GPS_EVENT_STOPPED) {         Log.d("zmenaGPS" , "GPS event stopped ");         GpsStatus gs = mlocManager.getGpsStatus(null);         Log.d("zmenaGPSgps status" , String.valueOf(gs));         Toast.makeText(getApplicationContext(),String.valueOf(gs),Toast.LENGTH_LONG).show();      } else if (event == GpsStatus.GPS_EVENT_FIRST_FIX) {         Log.d("zmenaGPS" , "GPS fixace ");         Toast.makeText(getApplicationContext(),"First Fix",Toast.LENGTH_LONG).show();     } else if (event == GpsStatus.GPS_EVENT_SATELLITE_STATUS) {         Log.d("zmenaGPS" , "GPS EVET NECO ");     }   }

回答1:

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 (        
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!