是系统将它们持久化,还是我必须在重启后再次添加它们?我在文档中没有找到任何关于这个问题的信息,请问是什么原因?https:/developer.android.comtraininglocationgeofencing.html。
Geofences不会在重启后持续存在。
你必须监听 BOOT_COMPLETED 动作并再次添加geeofences。
请注意。 如果您的应用程序安装在外部 存储器(SD卡)你将永远不会收到Boot Complete动作。所以您必须指定 android:installLocation="internalOnly"
在 manifest tag
这是因为,安卓设备将 广播BOOT_COMPLETED行动 在设置外部存储之前。
我还没有找到任何文档证实这一点,但我自己的实验表明,它们不会在重启时持久存在。
我的设置如下。
如果有谁从谷歌的人那里得到更多的信息,请评论!
你想坚持的数据是什么?是您设备中的地理围栏区域还是Google Play Service位置API存储的地理围栏区域?
我相信设备需要向Google Play服务注册一个区域(由其经纬度和半径定义)(通过定位客户端)。你还需要提供到期时间,你想被通知的转换类型,以及你将被通知的意图。
这个区域将被存储(远程),而不是在你的App中。当它过了到期时间,Google Play服务会自动删除它。您也可以将其设置为NEVER_EXPIRE.如果该区域尚未过期,Google Play服务将通知您的App(通过您在调用addGeofences时发送的意图)。
区域的来源(纬度、经度、半径)由你来实现。