Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android GPS-奇怪的冷启动行为_Java_Android_Gps - Fatal编程技术网

Java Android GPS-奇怪的冷启动行为

Java Android GPS-奇怪的冷启动行为,java,android,gps,Java,Android,Gps,行为如下: 启动我的应用程序“冷”,例如设备全天关机,然后在任意位置开机 GPS将做两件事:它将按预期工作,我将收到位置更新,或者它将只是“坐”在那里 这可能很好,因为GPS硬件可能需要一段时间才能修复,但困扰我的是: 如果我打开一个特别好的竞争对手使用GPS的应用程序,他们会立即得到修复。如果我随后返回应用程序,我的应用程序会突然收到更新并正常工作 也许他们应该知道,我也应该弄明白,但如果有人有任何见解,他们都愿意分享 这是我的GPS代码: private void initGPS() {

行为如下:

启动我的应用程序“冷”,例如设备全天关机,然后在任意位置开机

GPS将做两件事:它将按预期工作,我将收到位置更新,或者它将只是“坐”在那里

这可能很好,因为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()按其应该的方式触发一次,但是在这之后,我没有得到任何位置更新

谢谢,
Dane

您能告诉我选择的提供商名称吗?我建议你直接去找“gps”提供商。你可能想看看这个:正如前面提到的,试着更直接地去找提供商。您可以尝试这两种方法以及从冷启动获取数据所需的时间。