android - 每次检测到信标信号时自动启动应用程序信标

标签 android bluetooth bluetooth-lowenergy ibeacon android-bluetooth

我遵循此引用 here我想知道

  1. 当我进入信标区域或者我已经在信标区域并且我的设备检测到信标信号时,每次都可以启动我的应用程序。因为现在 boostrapnotifier 类在电源连接改变时仍然会召回

2.能否定义信标区域的半径,比如5米。因为现在半径对于我的用例来说太宽了。

最佳答案

一般来说这是可能的,是的。

RegionBootstrap类旨在自动将您的应用程序启动到后台以扫描信标,并在您进入/退出信标区域时发送回调。由于操作系统可能会终止您的应用程序以节省内存,因此该库旨在重新启动应用程序,以便其后台扫描服务可以在以下几种情况下继续运行:

  1. 在 5 分钟内被 Android 杀死 AlarmManager .
  2. 如果上述方法失败,则进行电源连接/断开操作。
  3. 在手机开机时。

根据您提到的引用,此行为应该是自动的。

虽然您不能定义Region 的半径,您可以添加执行类似操作的过滤逻辑。 一旦您收到 didEnterRegion 的回调, 开始对该区域的信标进行测距。在测距回调中,如果您看到 beacon.getDistance() < 5.0您可以执行您希望仅当信标距离不到五米时才发生的逻辑。

关于android - 每次检测到信标信号时自动启动应用程序信标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36880175/

相关文章:

Android - 运行用 CCTools 编译的命令行程序

android - 任务 ':app:transformClassesAndResourcesWithProguardForRelease' 执行失败 -- React Native

android - 从 fragment 内部获取父 ViewPager View

iphone - 是否可以使用蓝牙将高清视频从一台 iOS 设备流式传输到另一台?

android - 布莱 : Send advertise data to iOS from Android

java - BLE 发送/接收;尝试从空对象引用上的字段 'android.bluetooth.BluetoothGattCallback BluetoothLeService.mGattCallback' 读取

java - 如何在不使用 LinearLayout 的情况下使用 Android 以编程方式为 Spinner 分配权重?

IOS扫描经典蓝牙-获取地址-IBeacons

android - 套接字连接 - 读取 XML 文件插入垃圾字符

iOS CoreBluetooth 使用 UUID 重新连接设备