Android 信标库:如何在启动时禁用 运行

Android beacon library: how to disable run at startup

似乎导入android信标库(2.9)aar文件强制应用程序具有"run at startup"权限(在清单中添加接收者:org.altbeacon.beacon.startup.StartupBroadcastReceiver)

只希望在前台检测信标而不需要在启动时 运行 的测试应用可以禁用它(并避免在启动时向用户询问 运行 权限)?

确实 Android Beacon 库会在 phone 启动时开始后台扫描,但是 只有 如果您的应用构建 RegionBootstrap 自定义应用程序 class 的 onCreate 方法中的对象。这个特性在 2.9 中并不是新的——它从 2.0 开始就存在了。您可以阅读了解其工作原理 here.

有两种方法可以禁用此行为,具体取决于您要禁用的具体内容:

  1. 如果您只是不想让库在 phone 启动时扫描信标,请不要构建 RegionBootstrap

  2. 库的清单会自动将 RECEIVE_BOOT_COMPLETED 的请求添加到清单中,以便在启动时启用扫描。如果您不希望发生这种情况,只需将此行添加到您应用的清单中以防止它被合并到:

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" tools:node="remove" />