介绍
react-native-ble-qz
是一款适用于 React Native 框架的蓝牙模块,它能够帮助开发者快速地实现与蓝牙设备的通信。本文将介绍该模块的使用方法,以及实际示例来帮助读者更好地使用它。
安装
首先需要使用 npm 安装 react-native-ble-qz
,可以使用以下命令:
npm install react-native-ble-qz --save
配置
Android
在 Android 项目中,需要进行以下配置:
添加以下依赖到
android/app/build.gradle
文件中:dependencies { // .. 其他依赖 implementation project(':react-native-ble-qz') }
在
android/app/src/main/java/com/xxx/MainApplication.java
中添加以下代码:-- -------------------- ---- ------- ------ --------------------------------------- -- -- ------ ----------------------------- -- -- -- --- --------- --------- ------------------ ------------- - ------ -------------- --- ------------------- -- --- --- ------------------------- -- -- --- -------------- -- -- -- -
iOS
在 iOS 项目中,需要进行以下配置:
打开 Xcode,进入当前项目的
ios/
目录,双击*.xcodeproj
文件打开项目。在左侧导航栏中,找到当前项目的 “Libraries ” 目录。
右键单击该目录,并选择 “Add files to 'project_name' ”。
在弹出的 “Add Files to 'project_name' ” 窗口中,找到
node_modules/react-native-ble-qz/ios
目录,选中其中的RNBle.xcodeproj
文件,并点击 “Add” 按钮。将
RNBle.xcodeproj
文件拖拽到 “Targets” 下的当前项目中。选择 “Build Phases” 选项卡,并将
libRNBle.a
添加到 “Link Binary With Libraries” 中。
使用
在项目中导入 react-native-ble-qz
包:
import BleManager from 'react-native-ble-qz';
扫描周边设备
BleManager.scan([], 5, true).then(results => { console.log('Scanning...'); console.log(results); }).catch(err => { console.error(err); });
该方法接收3个参数:
serviceUUIDs
: 想要搜索的设备服务的 UUID 列表。duration
: 扫描时间(单位:秒)。allowDuplicates
: 是否允许扫描到本设备已经发现过的设备,如果值为false
,则只会在扫描到未发现的设备时进行通知。
扫描到的结果会在 Promise 中返回。
连接设备
BleManager.connect(peripheral.id).then(() => { console.log(`Connected to ${peripheral.name}`); }).catch((err) => { consold.error(err); });
该方法接收1个参数:
peripheralId
: 待连接设备的唯一标识符。
断开连接
BleManager.disconnect(peripheralId).then(() => { console.log(`Disconnected from ${peripheralId}`); });
该方法接收1个参数:
peripheralId
: 待断开连接设备的唯一标识符。
读取数据
BleManager.read(peripheralId, serviceUUID, characteristicUUID).then((data) => { console.log(`Read data: ${data}`); }).catch((err) => { console.error(err); });
该方法接收3个参数:
peripheralId
: 要读取数据的设备的唯一标识符。serviceUUID
: 想要读取的服务 UUID。characteristicUUID
: 想要读取的特征 UUID。
写入数据
BleManager.write(peripheralId, serviceUUID, characteristicUUID, data, maxByteSize).then(() => { console.log(`Write data success.`); }).catch((err) => { console.error(err); });
该方法接收5个参数:
peripheralId
: 要写入数据的设备的唯一标识符。serviceUUID
: 想要写入的服务 UUID。characteristicUUID
: 想要写入的特征 UUID。data
: 要写入的数据,可以使用字符串或 Uint8Array 类型。maxByteSize
: 发送数据的最大字节大小。
启用通知
BleManager.startNotification(peripheralId, serviceUUID, characteristicUUID).then(() => { console.log('Started notification on ' + characteristicUUID); }).catch((err) => { console.error(err); });
该方法接收3个参数:
peripheralId
: 要启用通知的设备的唯一标识符。serviceUUID
: 要启用通知的服务 UUID。characteristicUUID
: 要启用通知的特征 UUID。
禁用通知
BleManager.stopNotification(peripheralId, serviceUUID, characteristicUUID).then(() => { console.log('Stopped notification on ' + characteristicUUID); }).catch((err) => { console.error(err); });
该方法接收3个参数:
peripheralId
: 要禁用通知的设备的唯一标识符。serviceUUID
: 要禁用通知的服务 UUID。characteristicUUID
: 要禁用通知的特征 UUID。
总结
通过上述示例代码,我们可以看到 react-native-ble-qz
模块的使用方法。通过该模块,我们可以轻松地实现与蓝牙设备之间的通信。例如,在开发智能家居、物联网设备时,该模块可以帮助我们快速地实现与设备之间的数据交互。希望本文能够对读者有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600554f281e8991b448d2292