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
相关问题
OpenHarmony3.1release 连接服务失败
6159浏览 • 1回复 待解决
HarmonyOS SE服务连接
34浏览 • 1回复 待解决
HarmonyOS 推送服务getToken失败
594浏览 • 1回复 待解决
c# 低功耗蓝牙 连接多个设备
3275浏览 • 1回复 待解决
蓝牙连接报错该如何处理?
446浏览 • 1回复 待解决
HarmonyOS websocket连接自动断开
46浏览 • 1回复 待解决
HarmonyOS获取NativeXcomponent失败
436浏览 • 1回复 待解决
HarmonyOS 引入RN打包失败
733浏览 • 1回复 待解决
HarmonyOS无法获取蓝牙设备的真实MAC
730浏览 • 1回复 待解决