在android中的网络之间切换

时间:2011-05-16 19:34:59

标签: android geolocation gps locationmanager

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

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活动??

1 个答案:

答案 0 :(得分:0)

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

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

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

注册使用android.location.LocationListener.requestLocationUpdates