使用具有蓝牙低功耗的createBond()

clb*_*355 7 android bluetooth-lowenergy

我正在创建一个通过Bluetooth Low Energy与设备进行通信的应用程序,主要是让手机显示来自设备的数据.我需要实现功能,如果将设备和手机移动到范围内,它们将自动识别为一对,并且无需用户交互即可连接.我一直在寻找Bonding来实现这一目标.

我正在尝试使用当前连接的设备,并在用户单击时创建与它的绑定ListItem.我调用BluetoothDevice.createBond()了对连接BluetoothDevice变量的引用.Android Developer 网站说for BluetoothDevice.createBond(),如果出现错误,将返回false,并且我应该注册ACTION_BOND_STATE_CHANGED以在Bonding开始和完成时被通知.

我有一些问题createBond(),这是我的问题所在:

  1. 大多数时候createBond()返回false,表明它无法开始绑定.这有什么可能的原因?(我的手机运行的是Android 4.4.2,API19,这createBond()是介绍的地方 - 所以不是这样.)
  2. 有时,绑定显然会成功,因为将调用ACTION_BOND_STATE_CHANGED接收器中的代码.我可能会误解维护和使用绑定所涉及的内容,但BLE设备在范围内时不会自动连接到手机,所以我可能会遗漏一些代码.建立债券后,我还需要做什么?
  3. 如果由于createBond()某种原因无效(例如,我必须createBond()在API19中引入应用程序API API),有哪些替代方案?

例子非常有帮助.查找有关与BLE绑定的信息令人沮丧.自学这个东西很困难,特别是没有教程.最重要的是,有些人说这是不可能的,因为当其他人说它肯定是可能的时候是"Just Works".BLE对我来说仍然是一个混乱的大云,所以现在,一些清晰度createBond()将非常感激.