我正在编写一个Android应用程序,当用户进入特定区域时会通知用户。为此,我使用了Android的Geofence API。
我已经尝试了Google的GeofenceDetection示例,但该应用程序根本没有得到通知。
我调用addGeofences,并通过statusCode 0接收onAddGeofencesResult通知,所以一切似乎都正常,但是当我走进(或驱动)进出地理围栏(半径为5米或50米)时没有任何反应。
我使用Nexus4和Eclipse - 都更新到最新版本。
为什么我没有收到地理围栏通知?
答案 0 :(得分:0)
我发现GeoFencing API从不智能地从GPS硬件中检索位置。 GeoFence API将观察操作系统提供的最准确位置,或者如果当前没有可用的位置,它将导致从Wifi / Cellular计算位置。 (这很糟糕,因为蜂窝电话非常不准确,而且通常无法使用wifi)
因此,为了获得Geofencing API的所有响应或准确结果,您必须设置Geofences,然后在一定时间间隔内轮询GPS硬件,甚至不会对收到的结果做任何事情,以便在表面下为操作系统提供有价值的数据。
此行为未记录在案 - 感谢Google!