低功耗蓝牙技术连接的那些事

爱码哥|低功耗蓝牙技术连接的那些事

低功耗蓝牙技术(Bluetooth low energytechnology)是蓝牙经典标准的演进,专注于为设备间提供可靠、高效且低功耗的链路连接。它具有超低的功耗,满足超长的续航能力。2014年年底,蓝牙技术核心规范4.2版本正式发布。在该版本中,引入了最新的隐私保护机制,此外,该版本还大大提升了低功耗蓝牙技术设备间数据传输的速度与可靠性。

由于低功耗蓝牙技术封包容量增加,设备之间的数据传输速度可较蓝牙4.1版本提升2.5倍。数据传输速度与封包容量的增加能够降低传输错误发生的机率并减少电池能耗,进而提升连网的效率。本文就低功耗蓝牙技术设备之间的连接进行详细的讲解。希望能帮助开发者设计出更多有创新性的产品和解决方案。

蓝牙4.0 BLE(低功耗蓝牙),手机通过蓝牙4.0访问外设(Peripheral),比如:运动手环等。

插件代码:ImagBLE

支持平台:Android,iOS

方法


爱码哥|低功耗蓝牙技术连接的那些事


BleDevice

BLE设备对象


爱码哥|低功耗蓝牙技术连接的那些事


BleService

BLE设备的服务对象


爱码哥|低功耗蓝牙技术连接的那些事


BleCharacteristic

BLE服务的特征对象


爱码哥|低功耗蓝牙技术连接的那些事


BleDescriptor

BLE特征的描述对象


爱码哥|低功耗蓝牙技术连接的那些事



完整示例代码(左右滑动看代码)


<imag>

<page>
<title>
<center>
<label>蓝牙(Bluetooth)/<label>
/<center>
/<title>
<content>
<button>getName()/<button>
<button>enableBluetooth()/<button>
<button>disableBluetooth()/<button>
<button>isEnabled()/<button>
<button>isSupportBle()/<button>
<button>scan()/<button>
<button>scanAndConnect()/<button>
<button>read()/<button>
<button>disconnect()/<button>
<button>isConnected()/<button>
<button>readRssi()/<button>
/<content>
/<page>
/<imag>


说明:测试上面的例子需要两个手机,首先在安卓手机上安装上面例子的模拟外设APK: ble-test-peripheral.zip(https://doc.imagjs.com/_media/plugin:network:ble-test-peripheral.zip)

Github源码地址:ble-test-peripheral(https://github.com/WebBluetoothCG/ble-test-peripheral-android)


爱码哥|低功耗蓝牙技术连接的那些事


这个模拟程序包括三个模拟功能,分别是Battery, Heart Rate Monitor和Health Thermometer。

Service uuid和Characteristic uuid分别为:

Battery:

 BATTERY_SERVICE_UUID: 0000180f-0000-1000-8000-00805f9b34fb 
BATTERY_LEVEL_UUID: 00002a19-0000-1000-8000-00805f9b34fb

Heart Rate Monitor:

 HEART_RATE_SERVICE_UUID: 0000180D-0000-1000-8000-00805f9b34fb 
HEART_RATE_MEASUREMENT_UUID: 00002A37-0000-1000-8000-00805f9b34fb
BODY_SENSOR_LOCATION_UUID: 00002A38-0000-1000-8000-00805f9b34fb
HEART_RATE_CONTROL_POINT_UUID: 00002A39-0000-1000-8000-00805f9b34fb

Health Thermometer:

 HEALTH_THERMOMETER_SERVICE_UUID: 00001809-0000-1000-8000-00805f9b34fb
TEMPERATURE_MEASUREMENT_UUID: 00002A1C-0000-1000-8000-00805f9b34fb
MEASUREMENT_INTERVAL_UUID: 00002A21-0000-1000-8000-00805f9b34fb

上面的例子只测试了Battery,用到了Battery的uuid。

测试时把'小米11'替换成自己的外设名称。

接收和写入数据都用到了ByteBuffer对象,具体请参考:字节处理(ByteBuffer)(https://doc.imagjs.com/advance:bytebuffer)

爱码哥(iMAG)是一款专门用来开发手机APP的工具软件,它同时具备几大特点:1.跨平台开发的效率工具,大幅降低APP开发门槛;2.爱码哥拥有强大的集成能力,高度模块化、插件化的开发方式使得用户可以在短时间里整合海量功能;3.爱码哥云平台(http://imagjs.com)基于云技术为开发者和企业提供一体化(All In One)的完备服务。


分享到:


相關文章: