行为如下:
启动我的应用程序'冷却,例如设备全天关机,然后在任意位置启动。
GPS将做两件事:它将按预期工作,我将收到位置更新,或者它只是“坐下来”。那里。
这可能是全部而且很好,因为它可以花费一些时间来获得修复,但是这就是困扰我的事情:
如果我打开一个使用GPS的特别好的竞争对手的应用程序,他们会立即得到修复。如果我然后返回我的应用程序,我的应用程序突然接收更新并正常工作。
也许是他们知道,让我知道,但如果有任何人有任何见解,他们愿意分享......
这是我的GPS代码:
private void initGPS() {
String ls = Context.LOCATION_SERVICE;
mLocationManager = (LocationManager) getSystemService(ls);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
mProvider = mLocationManager.getBestProvider(criteria, true);
if (mProvider == null) {
mHandler.postDelayed(checkGPS, 1000);
return;
} else {
mHandler.removeCallbacks(checkGPS);
}
getGpsUpdates();
}
private void getGpsUpdates() {
mLocationManager.requestLocationUpdates(mProvider,
mTimeBetweenGPSUpdates, mDistanceBetweenGPSUpdates,
locationListener);
mLocationManager.addGpsStatusListener(gpsStatus);
}
很简单。从日志语句来看,事情似乎正在发挥作用。 getGpsUpdates()会触发一次,但之后我没有得到位置更新。
谢谢, 戴恩