FireBLE

FireBLE 是一个面向于打造智能生活的开源平台,以BLE(Bluetooth Low Energy)技术为核心,拥有超低的功耗、不俗的处理能力和广泛的应用场合,专注于更智能、高效率的工作模式,让生活在科技中更安全、方便、快捷。也许您一个不经意的想法与FireBLE擦出的火花,会在这片原野上燎出火焰,甚至燃烧整个世界。

简易防丢器

更新时间:2017-08-08 阅读:2796

功能介绍

防丢器应用的主要功能有:

  • 管理防丢器设备的连接。防丢器可以连接多个设备,需要把多个设备的连接管理起来。
  • 报警。防丢器应用可以发送命令到防丢器,然后防丢器会打开蜂鸣器发出报警音。
  • 反向报警。防丢器应用可以监听防丢器发来的通知,然后防丢器应用发出报警音。
  • 防丢报警。当防丢器跟防丢器应用之间的距离超出一定范围,防丢器和防丢器应用都发出报警音。

管理连接

管理连接,防丢器应用需要用一个列表来存储每个防丢器的BluetoothGatt对象。首先用startLeScan()stopLeScan()方法来查找BLE设备。然后用connectGatt()方法来连接BLE设备,期间可以确认BLE设备是否防丢器应用可识别的防丢器,如果是则把BluetoothGatt对象加入到防丢器应用的防丢器列表中。最后当不需要防丢器时,防丢器应用要调用close()方法来关闭连接。

报警

有了防丢器的BluetoothGatt对象,防丢器应用可以用readCharacteristic()writeCharacteristic()方法对防丢器相应的服务特征进行读写。而防丢器就可以响应这些对象实现蜂鸣器报警。

反向报警

有了防丢器的BluetoothGatt对象,防丢器应用可以用setCharacteristicNotification()方法对防丢器某个服务特征进行监听,并在BluetoothGattCallback对象的onCharacteristicChanged()方法中得到响应。然后根据接收到的数据,防丢器应用可以发出报警音来回应。

防丢报警

有了防丢器的BluetoothGatt对象,防丢器应用可以用readRemoteRssi()方法读取防丢器当前的rssi值,rssi值是负整数,表示防丢器应用和防丢器连接的信号强度,rssi值越小信号强度越小,防丢器应用可以用rssi值来估计防丢器应用和防丢器之间的距离。调用readRemoteRssi()方法后,会在BluetoothGattCallback对象的onReadRemoteRssi()方法中得到响应。然后防丢器应用判断防丢器的rssi值小于某个值时,防丢器应用触发报警。

开发中的注意事项

在开发中我们要主要以下事项:

  • 在实现防丢报警时,防丢器应用要隔一段时间调用readRemoteRssi()方法来读取rssi值。
  • 由于Android设备之间的千差万别,BLE连接的信号强度可能不一样,rssi值的实际范围就不一样了。
  • 由于一个防丢器应用连接多个BLE防丢器,在每个防丢器调用readCharacteristic(),writeCharacteristic(),setCharacteristicNotification()readRemoteRssi()方法时要注意线程安全,尽量不要同时并且大量地调用这些函数,因为可能会对Android设备的Bluetooth功能带来巨大负荷,而出现异常。