Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 每次检测到信标信号时自动启动应用信标_Android_Bluetooth_Bluetooth Lowenergy_Ibeacon_Android Bluetooth - Fatal编程技术网

Android 每次检测到信标信号时自动启动应用信标

Android 每次检测到信标信号时自动启动应用信标,android,bluetooth,bluetooth-lowenergy,ibeacon,android-bluetooth,Android,Bluetooth,Bluetooth Lowenergy,Ibeacon,Android Bluetooth,我遵循这个参考,我想知道 每次当我进入信标区域或者我已经在信标区域并且我的设备检测到信标信号时,都可以启动我的应用程序。因为现在boostrapnotifier类还记得电源连接更改时的情况 2.我可以定义信标区域的半径,例如5米。因为现在半径对于我的用例来说太宽了 一般来说,这是可能的,是的 RegionBootstrap类设计用于在后台自动启动应用程序以扫描信标,并在您进入/退出信标区域时发送回调。由于操作系统可能会关闭你的应用程序以节省内存,因此该库旨在重新启动应用程序,以便其后台扫描服务可

我遵循这个参考,我想知道

  • 每次当我进入信标区域或者我已经在信标区域并且我的设备检测到信标信号时,都可以启动我的应用程序。因为现在boostrapnotifier类还记得电源连接更改时的情况

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

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

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

  • 使用安卓
    AlarmManager被杀死后5分钟内
  • 如果上述操作失败,请执行电源连接/断开操作
  • 在电话开机
  • 按照您提到的参考,这种行为应该是自动的


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

    您可以通过实现并检查它是否对您有效来回答所有这一切:)doc说这是操作系统的限制。这个问题我已经坚持了两天,并且找到了解决的方法。非常感谢你的回答。我更了解库的工作原理和操作系统的限制。我将尝试应用我的应用程序。如果我创建broadcastreceiver类以在蓝牙打开时查找蓝牙状态,如何在onReceive方法中启动扫描如果您按照示例在应用程序类中设置RegionBootstrap,这将是自动的。当应用程序启动时,库将开始尝试扫描,如果蓝牙关闭,它将无法进行扫描。一旦打开,它将自动开始扫描。