微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

FusedLocationProviderClient在Android 10中不起作用

如何解决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) {


    }
};

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。