Android地理围栏是否能够重启?

时间:2013-06-11 09:35:14

标签: android geofencing android-geofence

是系统持久化还是我必须在重启后再次添加它们?我在https://developer.android.com/training/location/geofencing.html

的文档中没有找到任何相关信息

3 个答案:

答案 0 :(得分:17)

Geofences在重启时不会持续存在。我已经过测试,你可以找到样本here

您必须听取 BOOT_COMPLETED 操作并再次添加地理围栏。

注意:如果您的应用安装在外部存储(SD卡)上,您将永远不会收到启动完成操作。因此,您必须在android:installLocation="internalOnly"中指定manifest tag。 这是因为,在设置外部存储设备之前,Android设备将广播BOOT_COMPLETED操作

答案 1 :(得分:4)

我没有找到任何证明这一点的文件,但我自己的实验表明它们不会在重新启动后持续存在。

我的设置如下:

  • 运行应用程序
  • 应用程序在首次启动时设置各种地理围栏仅作为NEVER_EXPIRE
  • 退出申请
  • 在屏障标记的地区使用手机
  • 确认围栏触发发送到IntentService的待处理意图
  • 离开区域
  • 重新启动手机
  • 重新输入区域
  • 未将意图发送到IntentService

如果有人向Google的某些人提供有关此内容的更多信息,请发表评论!

答案 2 :(得分:-1)

您想要保留哪些数据?是您的设备中的地理围栏区域还是Google Play服务位置API存储的地理围栏区域?

我相信设备需要将一个区域(由其纬度,经度和半径定义)注册到Google Play服务(通过LocationClient)。您还需要提供到期时间,要通知的转换类型以及将通知您的意图。

此区域将(远程)存储在您的应用程序中。当它过期时,Google Play服务会自动将其删除。您也可以将其设置为NEVER_EXPIRE。 如果该地区尚未过期,Google Play服务会通知您的应用(通过调用addGeofences时发送的意图)。

区域的来源(纬度,长度,半径)取决于您的实施。