如何仅通过 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的主要内容,如果未能解决你的问题,请参考以下文章