Android:如何在用户关闭位置设置时获取地理围栏事件?

Posted

技术标签:

【中文标题】Android:如何在用户关闭位置设置时获取地理围栏事件?【英文标题】:Android: How can I get geofence events on location setting being turned off by the user? 【发布时间】:2020-03-02 05:18:15 【问题描述】:

我正在使用 Google 的位置服务样本(即地理围栏样本)进行测试。 https://github.com/android/location-samples/tree/master/Geofencing

据我了解,用户应该关闭位置上的地理围栏事件,以便我可以处理状态 GEOFENCE_NOT_AVAILABLE 但我没有收到任何有关位置设置被关闭的事件,而且我一般看不到任何错误.位置关闭时如何获取事件

【问题讨论】:

【参考方案1】:

使用示例,您应该能够截获 GeofenceBroadcastReceiver.java 中的状态码。

public class GeofenceBroadcastReceiver extends BroadcastReceiver 
    @Override
    public void onReceive(Context context, Intent intent) 
        GeofencingEvent event = GeofencingEvent.fromIntent(intent)
        if ( event.hasError() && event.getErrorCode() == GeofenceStatusCodes.GEOFENCE_NOT_AVAILABLE )  ... 
    

如果您仍然不确定,请查看以下链接以获取 GeofencingEvent.getErrorCode()。 https://developers.google.com/android/reference/com/google/android/gms/location/GeofencingEvent.html#getErrorCode()

【讨论】:

我只是在前台使用示例对其进行调试。问题是当我手动关闭位置设置时没有收到广播。当我关闭位置设置时,我上车并停留以及退出,但什么也没有。 根据文档,在大多数设备上,地理围栏服务仅使用网络位置来触发地理围栏,所以也许也可以尝试关闭网络,否则我没有想法,抱歉。也许看看这个帖子,可能和你的问题一样:***.com/questions/57413993/…

以上是关于Android:如何在用户关闭位置设置时获取地理围栏事件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在我的桌面应用程序中获取当前地理位置? [关闭]

发布时获取地理位置时应用程序强制关闭

位置侦听器适用于 Android 6.0 但不适用于 android 8.0+ [关闭]

wifi上的Android网络浏览器地理位置问题 - 它的路要走

在启动画面期间获取用户的地理位置

如何在 Android 设备上处理允许/关闭地理位置弹出窗口