Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.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
Android 5.0中的融合位置提供程序行为_Android_Location_Fusedlocationproviderapi_Android Fusedlocation - Fatal编程技术网

Android 5.0中的融合位置提供程序行为

Android 5.0中的融合位置提供程序行为,android,location,fusedlocationproviderapi,android-fusedlocation,Android,Location,Fusedlocationproviderapi,Android Fusedlocation,我正试图利用安卓融合定位提供商,使用高精度优先级,每30分钟获取一次设备位置。令我惊讶的是,当GPS被禁用时,我希望API能利用网络提供商和传感器来给我定位,但精度很低。但是,对于Android 5.0,API在本例中返回的位置为空 这种行为在安卓4.0中是不同的,它给了我一个位置,但正如预期的那样,它的准确性很差。我找不到关于这个的任何文档!有什么想法吗?? 编辑:刚刚意识到,Android 5的设备没有SIM,这意味着如果没有SIM,融合的位置提供商不会考虑WiFi来找到最佳的位置吗? <

我正试图利用安卓融合定位提供商,使用高精度优先级,每30分钟获取一次设备位置。令我惊讶的是,当GPS被禁用时,我希望API能利用网络提供商和传感器来给我定位,但精度很低。但是,对于Android 5.0,API在本例中返回的位置为空 这种行为在安卓4.0中是不同的,它给了我一个位置,但正如预期的那样,它的准确性很差。我找不到关于这个的任何文档!有什么想法吗??

编辑:刚刚意识到,Android 5的设备没有SIM,这意味着如果没有SIM,融合的位置提供商不会考虑WiFi来找到最佳的位置吗?

< P>缓存将在设备关闭后被清除,所以你应该使用PrimeRealHyg精度的LooCuffor请求。您可以使用LocationCallBack作为弱引用,这样就可以避免内存泄漏。必须删除onStop()中的位置更新。代码是这样的

            LocationRequest locationRequest = LocationRequest.create();
            locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
            locationRequest.setInterval(2000);
            LocationCallback locationCallback = new LocationCallback() {
                @Override
                public void onLocationResult(LocationResult locationResult) {
                    super.onLocationResult(locationResult);
                    if (locationResult == null || locationResult.getLastLocation() == null)
                        return;
                    updateLocation(locationResult.getLastLocation());
                }
            };

            fusedLocationProviderClient.requestLocationUpdates(locationRequest, locationCallback, null);

这可能对你有价值:请分享你的发现