我正在编写一个地理应用程序,并且一切正常,但是我正在考虑如何在没有GPS或3G的设备上使用它,并且wifi可能关闭或无法提供位置信息。

我最好的选择是仅请求位置更新(或使用最新已知的位置),并假设有一种获取位置的方法(无论是GPS还是网络),或者该框架是否包含查看可用数据的方法,并且避免了地理位置查找延迟?

我发现在没有GPS的设备上,我的应用应该为用户提供一个UI来指定位置,并在共享偏好中记住该位置,这样他们就不必继续重新输入它(我在想像Google TV这样的设备,和平板电脑)。

对于在具有不同级别的地理感知的各种设备的上下文中如何处理获取位置的过程以及如何处理这些问题,我将不胜感激。

最佳答案

您可以调用LocationManager.getAllProviders()检索所有位置提供程序,或调用LocationManager.getProviders(true)检索活动的位置提供程序。

boolean hasActiveLocationProvider = false;
LocationManager locationManager = Context.getSystemService(Context.LOCATION_SERVICE);
List<String> providers = locationManager.getProviders(true);
for (String providerName:providers) {
  if (providerName.equals(LocationManager.GPS_PROVIDER)
      || providerName.equals(LocationManager.NETWORK_PROVIDER)) {
    hasActiveLocationProvider = true;
  }
}


http://developer.android.com/reference/android/location/LocationManager.html

09-10 07:20
查看更多