Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.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-LocationManager请求LocationUpdates回调不';我不吃棒棒糖_Android_Geolocation_Locationmanager_Fusedlocationproviderapi - Fatal编程技术网

Android-LocationManager请求LocationUpdates回调不';我不吃棒棒糖

Android-LocationManager请求LocationUpdates回调不';我不吃棒棒糖,android,geolocation,locationmanager,fusedlocationproviderapi,Android,Geolocation,Locationmanager,Fusedlocationproviderapi,我在棒棒糖设备上使用requestLocationUpdates时遇到问题。未调用LocationListener()回调。我也尝试过使用api,但回调也不起作用。(权限、清单、GPS等所有依赖项都已启用) 这是我的LocationManager代码 这是针对FusedLocationProviderClient的 我试着到处寻找解决办法,但我运气不好。但问题是,它适用于其他Android版本,如牛轧糖/Oreo。据我所知,这两个API对棒棒糖没有任何问题(请CMIIW) 谢谢您应该使用goog

我在棒棒糖设备上使用
requestLocationUpdates
时遇到问题。未调用
LocationListener()
回调。我也尝试过使用api,但回调也不起作用。(权限、清单、GPS等所有依赖项都已启用)

这是我的LocationManager代码

这是针对FusedLocationProviderClient的

我试着到处寻找解决办法,但我运气不好。但问题是,它适用于其他Android版本,如牛轧糖/Oreo。据我所知,这两个API对棒棒糖没有任何问题(请CMIIW)


谢谢

您应该使用google api客户端进行持续更新和准确的结果GPS可能无法在室内工作,基于网络的位置提供商可能需要SIM卡(我不确定),使用
LocationManager
是完全合法的,尽管google当然推荐使用较新的fancier api。当然,如果你正在使用几种不同的设备进行测试,其中一些设备的GPS芯片和天线可能比其他设备更好,所以在室外或靠近打开的阳台门之类的地方进行测试。嗨,伙计们,谢谢你们抽出时间。谢谢。不知怎的,我使用的模拟器就是不起作用。但当我在真正的设备上试用时,它是有效的。我不知道是什么问题,我怀疑是硬件问题。
LocationManager locationManager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
Location lastKnownLocation = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,
                new LocationListener() {
                    @Override
                    public void onLocationChanged(Location location) {
                        Log.d("test", "GOTCHA");
                    }

                    @Override
                    public void onStatusChanged(String provider, int status, Bundle extras) {

                    }

                    @Override
                    public void onProviderEnabled(String provider) {

                    }

                    @Override
                    public void onProviderDisabled(String provider) {

                    }
                });
FusedLocationProviderClient fusedLocationProviderClient = new FusedLocationProviderClient(getContext());
    LocationCallback mLocationCallback = new LocationCallback() {
        @Override
        public void onLocationResult(LocationResult locationResult) {
            super.onLocationResult(locationResult);
            Log.d("test", "GOTCHA");
            if (locationResult != null) {
                Location currentLocation = locationResult.getLastLocation();
                handleCurrentLocation(currentLocation);
                fusedLocationProviderClient.removeLocationUpdates(this);
            } else {
                failToGetLocationHandler("Fail to initiate request location ...");
            }
        }

    };

    fusedLocationProviderClient.requestLocationUpdates(mLocationRequest, mLocationCallback, null);