//获取蓝牙设备所有服务(service)
getBLEDeviceServices() {
let _serviceList = [];
let deviceId = this.deviceId;
let self = this;
return new Promise((resolve, reject) => {
setTimeout(() => {
uni.getBLEDeviceServices({
deviceId: self.deviceId,
success: function(res) {
console.log('获取蓝牙设备所有服务',res)
/* "advertisServiceUUIDs":
// let arr = [{
uuid:'000018F0-0000-1000-8000-00805F9B34FB',
isPrimary:true
},{
uuid:'E7810A71-73AE-499D-8C15-FAA9AEF0C3F2',
isPrimary:true
}] */
if(res.services.length === 0){
res.services = arr
}
for (let service of res.services) {
if (service.isPrimary) {
_serviceList.push(service);
}
}
uni.hideLoading();
// console.log("_serviceList: " + JSON.stringify(_serviceList)); // []
resolve(_serviceList)
},
fail: err => {
uni.hideLoading();
self.showToast(`获取设备Services` + JSON.stringify(err));、
reject(err);
},
})
}, 1500);
});
}
- 发布:2021-01-13 16:21
- 更新:2023-07-17 14:41
- 阅读:1706
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10
HBuilderX类型: 正式
HBuilderX版本号: 3.0.7
手机系统: Android
手机系统版本号: Android 9.0
手机厂商: 华为
手机机型: MI8 Explorer Edition
页面类型: vue
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
- 连接低功耗蓝牙设备。返回值 ok
- 获取蓝牙设备所有服务(service), 返回值 services Array<Object> 为 空数组 (ios可正常拿到uuid等信息)
- 连接低功耗蓝牙设备。返回值 ok
- 获取蓝牙设备所有服务(service), 返回值 services Array<Object> 为 空数组 (ios可正常拿到uuid等信息)
预期结果:
正确返回蓝牙设备所有服务 如:
[{uuid:'000018F0-0000-1000-8000-00805F9B34FB',isPrimary:true}]
正确返回蓝牙设备所有服务 如:
[{uuid:'000018F0-0000-1000-8000-00805F9B34FB',isPrimary:true}]
实际结果:
[]
[]
bug描述:
在连接蓝牙成功后, 获取蓝牙设备所有服务(service),安卓平台返回值为空,正常情况下应返回 [ {uuid:'abc',isPrimary;true } ]。
ios平台返回正常,打印流程正常。
接口: uni.getBLEDeviceServices(OBJECT)
打印机品牌: EPSON
型号: LQ-630K2
开发型号: PB11A
9 个回复
卡西莫多是疯子
问一下,目前有解决方案了么
7***@qq.com (作者)
顶一手
7***@qq.com (作者)
@DCloud_Android_DQQ @DCloud_UNI_linju_json @DCloud_UNI_LXH @DCloud_Android_DQQ
7***@qq.com (作者)
小程序和IOS都可以正常获取到蓝牙设备服务信息,唯独安卓不可以,也不报错,仅仅是没有获取到,打印机设备是同一个
DCloud_Android_zl
延时获取一下试试
2021-01-13 17:00
7***@qq.com (作者)
回复 DCloud_Android_zl: 已经延迟获取了,也是不行
2021-01-13 17:09
DCloud_Android_zl
回复 7***@qq.com: 麻烦提供一下QQ号,联调一下。
2021-01-13 17:16
7***@qq.com (作者)
回复 DCloud_Android_zl: 778277514
2021-01-13 17:19
DCloud_Android_zl
回复 7***@qq.com: 1633537611,你加我吧,你的需要验证信息。
2021-01-13 17:23
3***@qq.com
回复 DCloud_Android_zl: 这个问题解决了吗?我这也发现这个问题了
2021-01-18 11:40
7***@qq.com (作者)
获取服务失败打印信息
7***@qq.com (作者)
7***@qq.com (作者)
更新了打印机品牌型号,有遇到类似情况的看看
1***@qq.com
后面怎么解决?只能换打印机品牌和型号?
2023-08-09 17:31
machi的奶茶 - 披风前行
我也遇到了此问题,打印机型号为:QR-386A 。
解决的办法就是延长了API 的请求时间,从原先的500ms改为1500ms,就成功了。
代码如下:
火听第一帅
您好,请问解决了吗