Android 在应用程序关闭时使用新API检测geofence入口

Android 在应用程序关闭时使用新API检测geofence入口,android,android-location,Android,Android Location,刚刚观看了关于新定位功能的课程: 我认为GEOFENCES的功能非常适合我的应用程序。 我还下载了演示应用程序,虽然信息量很大,但它并没有提供我想要的功能。 那么,请有人给我解释一下,或者给我举个例子,说明如何在应用程序关闭时向应用程序添加地理围栏检测。如果你看过IO会话并注意到应用程序Zillo,那就是我所说的 我现在知道的是,我不想在后台使用一个不断运行的服务来检测过渡广播,而是希望在清单文件中注册它们,然后在广播接收器类中处理它们。类似于使用GCM消息时所做的操作。 因此,问题是: 哪些广

刚刚观看了关于新定位功能的课程: 我认为GEOFENCES的功能非常适合我的应用程序。 我还下载了演示应用程序,虽然信息量很大,但它并没有提供我想要的功能。 那么,请有人给我解释一下,或者给我举个例子,说明如何在应用程序关闭时向应用程序添加地理围栏检测。如果你看过IO会话并注意到应用程序Zillo,那就是我所说的

我现在知道的是,我不想在后台使用一个不断运行的服务来检测过渡广播,而是希望在清单文件中注册它们,然后在广播接收器类中处理它们。类似于使用GCM消息时所做的操作。 因此,问题是:

哪些广播需要在舱单中注册? 我应该在什么时候注册我的围栏,以便它们只注册一次,并在应用程序关闭时保持注册状态? 在这种情况下,有没有关于如何优化电池寿命的建议?
如果有人已经体验过土工围栏的半径,您会建议检测进入大型建筑(例如,3000-5000平方米底层面积)的情况吗?

我实现了您所说的。(使用广播接收器而不是IntentService)。我从示例代码开始,然后做了一些小改动

当应用程序关闭时,它似乎工作正常

至于优化电池寿命,这一切都是由操作系统完成的。你只需注册围栏,其余的由Android处理。我认为他们已经很好地优化了它,在注册了近100个围栏之后,我还没有看到明显的排水。但我还没有做过广泛的测试

至于半径大小,我建议构建一个包含地图的示例应用程序,并在lat lng上放置一个大头针,然后玩半径,直到它看起来合适为止。随便猜猜,我建议半径在150米左右

--更新-- 关于我所发现的准确性的更多细节。我开发了一个测试应用程序来查看自己的轨迹和准确性,在过去的几周里我一直在开车,并经常检查它。我只在gps关闭的情况下进行测试,因为这与大多数用户外出走动时会遇到的情况类似

  • 室外,不靠近任何wifi信号:不太准确,大约100-200米
  • 在户外,接近wifi信号:惊人的准确。在10-30米之间。如果我坐在餐馆外面,或者在有无线信号的露天购物中心,它很清楚我在哪里
  • 室内:即使使用wifi,很多时候它看起来也不如室外准确。大约30-50米

感谢您的回复。我很快就了解了新API,您完全正确,默认示例几乎满足了我的所有需求。关于半径,我目前正在制作用于设置围栏的管理部分,但这部分问题更多的是从其他dewelopers的经验中获取有关地理围栏精确程度的信息。添加了更多我的发现。很棒的信息更新。我真的很喜欢你在没有GPS的情况下进行测试,因为正如你所说,很多用户都会关闭GPS。关于室外精确到10-30米,我会说这是非常棒的,因为它肯定会使我的应用程序和其他依赖于此的应用程序非常有用,就我而言,即使是200米也没问题(我甚至在管理部分添加了最小半径100米)…关于室内信号的准确性,我认为这与wifi和移动信号的传播方式以及反射有关。正如瓦利德·卡杜斯(Waleed Kadous)和其他许多人在IO演讲中所说的那样,wifi强度对人们的影响很大,正如你从经验中可能知道的那样,移动信号最可怕的敌人是钢铁和混凝土。