如何仅通过 ACCESS_COARSE_LOCATION 使用 GeofencingApi

Posted

技术标签:

【中文标题】如何仅通过 ACCESS_COARSE_LOCATION 使用 GeofencingApi【英文标题】:How to use GeofencingApi with just ACCESS_COARSE_LOCATION 【发布时间】:2017-09-20 08:37:38 【问题描述】:

我正在尝试使用地理围栏,但我不想获取用户的确切位置。所以我正在使用 ACCESS_COARSE_LOCATION。如果我使用大的地理围栏点圈,我认为 ACCESS_COARSE_LOCATION 会正常工作。可能工作不完美,但它可以大致了解用户位置。

在这样的文档代码中

        try 
        LocationServices.GeofencingApi.addGeofences(
                mGoogleApiClient,
                // The GeofenceRequest object.
                getGeofencingRequest(),
                // A pending intent that that is reused when calling removeGeofences(). This
                // pending intent is used to generate an intent when a matched geofence
                // transition is observed.
                getGeofencePendingIntent()
        ).setResultCallback(this); // Result processed in onResult().
     catch (SecurityException securityException) 
        // Catch exception generated if the app does not use ACCESS_FINE_LOCATION permission.
        logSecurityException(securityException);
    

但它给出了错误,因为 GeofencingApi.addGeofences 需要 FINE_LOCATION 权限。如何在 COARSA_LOCATION 中使用地理围栏

【问题讨论】:

【参考方案1】:

你不能。 您需要 ACCESS_FINE_LOCATION 才能使用地理围栏 API。

引用文档:

请求地理围栏监控的第一步是请求必要的许可。要使用地理围栏,您的应用必须请求 ACCESS_FINE_LOCATION。

https://developer.android.com/training/location/geofencing.html#RequestGeofences

【讨论】:

以上是关于如何仅通过 ACCESS_COARSE_LOCATION 使用 GeofencingApi的主要内容,如果未能解决你的问题,请参考以下文章

如何仅通过泛型类型 T 创建实例 [重复]

如何仅通过 nvprof 分析 CUDA 应用程序

Keycloak:如何仅通过身份提供者登录

您如何仅通过 Javascript 读取 RTMP 流?

如何删除仅通过 ID 不同的两行

如何仅通过命令行使用 TumbleWeed 安全传输