我们有很强的 GPS 信号 我有一个应用程序可以测试建立 GPS 锁定的速度 我什至在我的手机上测试了导航应用程序,如果我刚刚打开 GPS,它们都会得到几乎 10 的 insta 锁定。
但是有了这个应用程序,我永远不会得到锁,wile 循环只是一直在继续,日志从来没有显示我让它运行了 10 分钟,什么也没有。我在这里遗漏了什么吗?我知道可能会有 > 10 分钟的延迟,但其他应用程序没有使用 lastKnownLocation 而是提取实际位置的问题。
gpsLocation() 方法也在静态定位器类中。
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
Location location = Locator.gpsLocation(this);
while(location == null)
{
location = Locator.gpsLocation(this);
}
Log.w("GPS LOCATION", "LOCATION FOUND");
}
/**
* Finds users location using gps
* satelite network.
*
* @param FragmentActivity
* @return Location
*/
public static Location gpsLocation(FragmentActivity context)
{
// Fetch LocationManager service & instance of UserLocator
LocationManager provider = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
UserLocator locator = new UserLocator();
// Attempt to get a fix on users location
provider.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locator);
// Return users location using GPS Service
return locator.location;
}
/**
* Use to listen for user location updates
* TODO: Reimplement as a anonymous class
*/
class UserLocator implements LocationListener
{
// Public accessor
public Location location;
public void onLocationChanged(Location location)
{
if(location != null)
{
// We have a fix on users location
this.location = location;
}
}
public void onProviderDisabled(String provider) {}
public void onProviderEnabled(String provider) {}
public void onStatusChanged(String provider, int status, Bundle extras) {}
}