Java Android GPS-奇怪的冷启动行为
行为如下: 启动我的应用程序“冷”,例如设备全天关机,然后在任意位置开机 GPS将做两件事:它将按预期工作,我将收到位置更新,或者它将只是“坐”在那里 这可能很好,因为GPS硬件可能需要一段时间才能修复,但困扰我的是: 如果我打开一个特别好的竞争对手使用GPS的应用程序,他们会立即得到修复。如果我随后返回应用程序,我的应用程序会突然收到更新并正常工作 也许他们应该知道,我也应该弄明白,但如果有人有任何见解,他们都愿意分享 这是我的GPS代码:Java Android GPS-奇怪的冷启动行为,java,android,gps,Java,Android,Gps,行为如下: 启动我的应用程序“冷”,例如设备全天关机,然后在任意位置开机 GPS将做两件事:它将按预期工作,我将收到位置更新,或者它将只是“坐”在那里 这可能很好,因为GPS硬件可能需要一段时间才能修复,但困扰我的是: 如果我打开一个特别好的竞争对手使用GPS的应用程序,他们会立即得到修复。如果我随后返回应用程序,我的应用程序会突然收到更新并正常工作 也许他们应该知道,我也应该弄明白,但如果有人有任何见解,他们都愿意分享 这是我的GPS代码: private void initGPS() {
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()按其应该的方式触发一次,但是在这之后,我没有得到任何位置更新
谢谢,
Dane您能告诉我选择的提供商名称吗?我建议你直接去找“gps”提供商。你可能想看看这个:正如前面提到的,试着更直接地去找提供商。您可以尝试这两种方法以及从冷启动获取数据所需的时间。