相关疑难解决方法(0)

199
推荐指数
10
解决办法
23万
查看次数

LocationAvailability无可用位置

Google FusedLocationProviderApifor Android最近在过去几个月内被弃用,FusedLocationProviderClient作为其继任者,因此我最近更新了客户端应用中使用的位置API以使用新的API.

每次onLocationAvailability被触发时LocationCallback我都会在locationAvailability.isLocationAvailable()返回时通知用户false,但看起来这种情况比我在某些设备上预期的更频繁.我在前台内运行这些位置更新Service,这些位置更新保持一致至关重要.有没有办法确定这种失败的原因

  1. 我们不会向最终用户表明任何误报
  2. 我们可以尝试解决问题,或者至少向最终用户报告他们应该做些什么?

在我看来,被弃用的API提供了对这些问题的更多洞察,因为它与它一起使用GoogleApiClient或者我可能缺少一些较小的细节.

android google-api

7
推荐指数
2
解决办法
1579
查看次数

FusedLocationClient 不调用 onLocationResult

我目前正在创建一个位置客户端,目前我有

 public void startUpdatingLocationProcess(Context context) {

     parentContext = context;

    if (mFusedLocationClient == null){
        mFusedLocationClient = LocationServices.getFusedLocationProviderClient(parentContext);

        LocationRequest mLocationRequest = new LocationRequest();
        mLocationRequest.setInterval(5000);
        mLocationRequest.setFastestInterval(5000);
        mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

        if (ContextCompat.checkSelfPermission(parentContext, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED)
        {
            mFusedLocationClient.requestLocationUpdates(mLocationRequest, new LocationCallback(){
                @Override
                public void onLocationResult(LocationResult locationResult) {

                    onLocationChanged(locationResult.getLastLocation());
                }

            } , Looper.myLooper());

         }


}
Run Code Online (Sandbox Code Playgroud)

这是在我想在整个应用程序生命周期中运行的 LocationApi 类中,这个特定的应用程序运行许多活动,所以我不想在每次销毁和创建新活动时“重新创建”请求。

允许并检查 FINE_LOCATION 的权限,logcat 中没有错误,代码在创建 mFusedLocationClient 对象时运行 requestLocationUpdates 方法,但它从不调用“onLocationResult”方法。

使用这个 api 有什么我遗漏的吗?

android fusedlocationproviderclient

7
推荐指数
1
解决办法
7465
查看次数