0

嘿伙计们,我正在开发一个应用程序,我需要在其中找到用户的纬度经度。我可以通过以下代码找到网络提供商的纬度经度:-

LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
loc = lm.getLastKnownLocation(lm.NETWORK_PROVIDER);
Toast.makeText(BaseScreen.this, "Lat: "+loc.getLatitude()+" long: "+loc.getLongitude(), Toast.LENGTH_LONG).show();

现在以下是我需要实施的情况:-

  • 如果用户在建筑物中并且无法从 GPS 检索数据怎么办
  • 如果用户关闭了 GPS 并想从网络获取位置怎么办
  • 我的应用程序有大约 20 个活动,如果我将 locationlistener 的代码放在一个由其他活动扩展的基本屏幕中并继续在某些数据管理器中保存纬度和经度,那么即使活动不是,回调也会在该基本屏幕活动中工作主要的 UI 活动?
4

1 回答 1

0

一个。通常我们应该在请求更新时同时注册 GPS 和网络提供商,这解决了我们自动回退到网络提供的值的视线问题。

湾。如果 GPS 已关闭,您可以使用 isProviderEnabled() 从代码中检查,如果不是,您唯一的选择是使用网络提供商。

C。最好还是将 LocationListener 作为一个单独的类,并在 onLocationChanged 中存储收到的位置,该位置应该在您的应用程序中可用。

注册使用 android.location.LocationListener.requestLocationUpdates

于 2011-05-16T20:16:01.227 回答