以下代码返回Null

时间:2015-03-30 13:28:16

标签: java android

以下代码返回null ...任何人都可以告诉我原因吗?

public Location getLocation(){
       LocationManager locationManager;
       String context = Context.LOCATION_SERVICE;
       locationManager = (LocationManager) mContext.getSystemService(context);

       String provider = LocationManager.GPS_PROVIDER;
       Location location = locationManager.getLastKnownLocation(provider);
       return location;
   }

1 个答案:

答案 0 :(得分:2)

因为GPS提供商在返回最后一个已知位置之前需要一些时间锁定Satelite。

如果您需要通过GPS获得最佳位置,则必须使用位置管理器的请求更新机制,然后处理位置更新事件以获取gps上的位置。

我使用的最佳做法是以下worflow:

  1. 检查GPS
  2. 如果gps可用且可用,请求更新。
  3. 通过网络或低功率配置文件返回上一个已知位置,该位置始终提供位置。
  4. 当位置更新事件到来时,再次使用GPS的精确位置更新gui。
  5. 良好的起点在这里:http://developer.android.com/guide/topics/location/strategies.html