HarmonyOS蓝牙连接后获取GATT服务失败

蓝牙gatt连接用以下方式获取gattService失败:

let device: ble.GattClientDevice = ble.createGattClientDevice('XX:XX:XX:XX:XX:XX'); 
device.connect(); 
device.getServices().then((result: Array<ble.GattService>) => { 
  console.info('getServices successfully:' + JSON.stringify(result)); 
});

返回错误信息:BussinessError 2900099: Operation failed。

HarmonyOS
2024-08-12 15:38:45
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

getServices接口需要gatt成功连接后才会调用成功,可以通过注册连接回调,当回调中返回成功连接状态后,再调用getServices接口获取服务信息。首先,想询问一下是否使用双端设备进行测试连接?ble模块设计服务端和客户端,需要使用双端设备才可以成功连接测试。单设备内同时创建createGattClientDevice和createGattServer是没法进行服务端和客户端连接测试的。其次,.on(‘connectionStateChange’)方法是服务端的方法,您这里可以改成on(‘BLEConnectionStateChange’)客户端的方法,判断连接成功后在其中调用服务发现接口。

分享
微博
QQ
微信
回复
2024-08-12 19:30:48
相关问题
HarmonyOS 获取蓝牙服务超时
67浏览 • 1回复 待解决
OpenHarmony3.1release 连接服务失败
6347浏览 • 1回复 待解决
HarmonyOS 蓝牙写入失败
199浏览 • 1回复 待解决
HarmonyOS SPP蓝牙连接报错
172浏览 • 1回复 待解决
HarmonyOS 蓝牙连接配对接口问题
180浏览 • 1回复 待解决
HarmonyOS 蓝牙ble写入失败 2900099
236浏览 • 1回复 待解决
HarmonyOS 蓝牙ble模块getServices失败
196浏览 • 1回复 待解决
HarmonyOS SE服务连接
298浏览 • 1回复 待解决
c# 低功耗蓝牙 连接多个设备
3467浏览 • 1回复 待解决
蓝牙连接报错该如何处理?
720浏览 • 1回复 待解决