更新记录
1.0.0(2023-05-22)
经典蓝牙SPP协议,扫描、连接、收发数据
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 12.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
前言
android 经典蓝牙SPP协议,扫描、连接、收发数据
支持定制,QQ252797991
var bluetoothSpp = uni.requireNativePlugin("wrs-bluetoothSpp");
方法
- 设置回调
// 设置回调
bluetoothSpp.setCallback((resp) => {
var opt = resp.opt;
switch (opt) {
// 扫描到蓝牙设备
case "onReceiveDevice":
var action = resp.action;
var device = resp.device;
switch (action) {
case "android.bluetooth.device.action.FOUND":
// 扫描到设备
this.deviceArray.push(device);
break;
case "android.bluetooth.adapter.action.DISCOVERY_FINISHED":
// 扫描完成
break;
case "android.bluetooth.adapter.action.DISCOVERY_STARTED":
// 开始扫描
break;
default:
break;
}
break;
// 收到蓝牙数据
case "onReceiveDeviceData":
var dataHex = resp.dataHex;
this.showMsg("收到蓝牙数据:" + JSON.stringify(dataHex));
break;
default:
break;
}
});
- 注册接收者
bluetoothSpp.registerReceiver();
- 取消注册接收者
bluetoothSpp.unregisterReceiver();
- 检查蓝牙是否已经打开
bluetoothSpp.isEnabled((resp)=>{
var isEnabled = resp.isEnabled;
});
- 开启蓝牙
bluetoothSpp.enable();
- 开始扫描
// 扫描结果通过setCallback接口回调
bluetoothSpp.startDiscovery((resp) => {
var code = resp.code;
if (code != 0) { // 扫描失败
this.showMsg(JSON.stringify(resp));
this.showToast("扫描失败");
}
});
- 是否正在扫描中
bluetoothSpp.isDiscovering((resp) => {
var isDiscovering = resp.isDiscovering;
if (isDiscovering) {
} else {
}
});
- 停止扫描
bluetoothSpp.cancelDiscovery((resp)=>{});
- 连接蓝牙
var params = {};
params.address = "xxx";
params.uuid = "00001101-0000-1000-8000-00805F9B34FB";
bluetoothSpp.connectBluetooth(params, (resp)=>{
var code = resp.code;
if(code == 0) { // 连接成功
var maxReceivePacketSize = resp.maxReceivePacketSize;
var maxTransmitPacketSize = resp.maxTransmitPacketSize;
} else { // 连接失败
}
})
- 关闭
bluetoothSpp.close((resp) => {
var code = resp.code;
if (code == 0) {
// 成功
} else {
}
});
- 发送数据
var params = {};
params.data = "FFFB";
bluetoothSpp.sendData(params, (resp) => {
var code = resp.code;
if (code != 0) {
this.showMsg(JSON.stringify(resp));
this.showToast("发送失败");
}
});