FusedLocationProviderClient在Android 10中不起作用

问题描述

我已使用FusedLocationProviderClient通过以下请求检索了一次位置。

LocationRequest request = new LocationRequest();
request.setInterval(1000);
request.setNumUpdates(1);
request.setMaxWaitTime(2500);
request.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

我还应用了设置分辨率以启用GPS。一切正常即可正常进行。

但是,当我执行以下步骤时,该位置无法正常工作或花了超过3分钟的时间才能给出位置。

  1. 位置已关闭,并首次在GPS弹出窗口上单击“不,谢谢”按钮。
  2. 然后再次单击GPS弹出窗口上的“确定”按钮。
  3. 之后,我要求提供位置。但是在3-5分钟后仍无法获得位置信息,有时甚至无法显示。

修改

这是我的示例代码:-https://pastebin.com/zxVCMCPn

解决方法

这就是即时定位及其正常工作的方式。

   //declare them universally //before on create
   LocationRequest mLocationRequest;
    LocationCallback mLocationCallback;
 FusedLocationProviderClient fusedLocationProviderClient;



   private void realLocation (){
        if(liveloction){

            locationrequestfunct();
            if(mLocationPermissionGranted){
                fusedLocationProviderClient.requestLocationUpdates(mLocationRequest,mLocationCallback,Looper.myLooper());
                mMap.setMyLocationEnabled(true);
            }

        }

    }

    private void locationrequestfunct(){
        mLocationRequest = new LocationRequest();
        mLocationRequest.setInterval(30000);
        mLocationRequest.setFastestInterval(10000);
        mLocationRequest.setPriority(LocationRequest.PRIORITY_LOW_POWER);
    }

,它应该在oncreate中 //初始化位置//两者都应该在创建时

 fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this);

//the call back will not work if is not in on create
mLocationCallback = new LocationCallback() {
    @Override
    public void onLocationResult(LocationResult locationResult) {


    }
};

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...