在Android中添加地理围栏时出错(状态代码1000)

我在onAddGeofencesResult(int statusCode, String[] geofenceRequestIds)回调中收到错误, statusCode = 1000

我启用了GPS和WiFi。 我还有Google Play服务,我可以跟踪我的位置并请求更新。 为什么我无法添加地理围栏? 我甚至无法从文档示例应用程序添加地理围栏。 我得到以下Toast消息:

“添加Geofences:失败,错误代码1000 GeofenceRequestIds = [1,2,1,2]”

从文档(statusCode 1000):

public static final int GEOFENCE_NOT_AVAILABLE

地理围栏服务现在不可用。 通常这是因为用户在设置>位置访问中关闭了位置访问权限。

常数值:1000(0x000003e8)

当用户在“设置” – >“位置” – >“模式”中不同意“使用Google”位置服务时,您将获得GEOFENCE_NOT_AVAILABLE (代码为“1000”): 在此处输入图像描述

要解决这个问题:

  • 转到设置 – >位置 – >模式
    在此处输入图像描述
  • 设置“仅限设备(使用GPS确定您的位置)”
  • 设置任何其他选项以获取popup窗口(例如“高精度(使用GPS,Wi-Fi和移动网络确定位置”)
  • 显示对话框“”使用Google“位置服务”
  • 选择“同意”

当我试图在模拟器上运行这个应用程序时,我得到了statusCode 1000。 解决这个问题的方法是进入Settings-> locations和access->检查模拟器上的enable wifi和gps选项,它会修复它

稍晚一点,但刚才我有这个问题。 我的猜测是:

你在测试中使用任何types的假GPS(Lockito,模拟器等)?

我花了几个小时才发现假位置似乎禁用了Geofence支持! 如果您不在该位置,则无法注册或触发地理围栏。

如果您关闭假GPS,Geofence支持将再次启用。

您实际上在您的问题中给出了答案:地理围栏服务现在不可用。 通常这是因为用户在设置>位置访问中关闭了位置访问权限。

我有同样的问题,只是去设置 – >位置,并确保我选择高精度模式解决了这个问题。

PS Device only模式不够好,需要高精度模式。

希望这可以帮助。

首先,您的手机必须兼容: A compatible Android device that runs Android 2.2 or higher and includes Google Play Store.

可以肯定的是,您需要正确安装 Google Play服务。

有时,只需重新启动手机即可解决此问题。

希望这有帮助。

我犯了愚蠢的错误:

发生错误,因为设备没有GPS(位置服务)权限。

有关Geofencing API的更多详细信息,请点击此处

屏幕截图供参考:

在此处输入图像描述 在此处输入图像描述

希望这会让你清楚。