0

我已经设置了这个 LocationRequest

private static final int MILLISECONDS_PER_SECOND = 1000;

public static final int UPDATE_INTERVAL_IN_SECONDS = 5;

private static final long UPDATE_INTERVAL = MILLISECONDS_PER_SECOND * UPDATE_INTERVAL_IN_SECONDS;

private static final int FASTEST_INTERVAL_IN_SECONDS = 1;

private static final long FASTEST_INTERVAL = MILLISECONDS_PER_SECOND * FASTEST_INTERVAL_IN_SECONDS;


mLocationClient = new LocationClient(this, this, this);
mLocationRequestHigh = LocationRequest.create();

mLocationRequestHigh.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

mLocationRequestHigh.setInterval(UPDATE_INTERVAL);

mLocationRequestHigh.setFastestInterval(FASTEST_INTERVAL);

这是在我的 BaseActivity 中设置的,然后在我调用的另一个活动中

mLocationClient.requestLocationUpdates(mLocationRequestHigh, this);

但是,这只是搜索位置,但似乎从未获得位置。我是否错过/做错了什么,或者可能只是我所在的位置?如果我加载谷歌地图,它会在几秒钟内获得我的位置。

4

1 回答 1

1

谷歌地图不仅使用 GPS,还使用您的网络位置。还有像 getLastKnownLocation() 这样的方法可以快速修复。LocationRequest.PRIORITY_HIGH_ACCURACY 意味着您将只使用 GPS,因此等待 GPS 修复。使用 Google Play 商店中的“假 GPS 位置”应用程序来确保 GPS 是否在您的应用程序中工作。如果它与“假 GPS”有关,那么它只是连接到卫星问题。

您可以在

http://developer.android.com/guide/topics/location/strategies.html

通常,如果您希望您的应用程序像 Google 地图一样执行,您必须遵循上述文章中的所有提示。谷歌地图的源代码是不公开的,所以你不能只是复制粘贴他们的代码。

于 2013-09-20T08:49:57.717 回答