HarmonyOS 鸿蒙Next ohos.usbManager的bulkTransfer写HID设备返回-1

发布于 1周前 作者 bupafengyu 来自 鸿蒙OS

HarmonyOS 鸿蒙Next ohos.usbManager的bulkTransfer写HID设备返回-1

我用的是ohSDK3.2(API9),目标设备也是3.2的,可以正常找到这个hid设备(一个加密模块),requestRights也能正常获取到权限,connectDevicce和claimInterface也是正常的,但是bulkTransfer总是失败(catch到error(-1)),是不是SDK3.2不支持interrupt端点的访问啊?我用这个方法写bulk端点的设备是成功的

5 回复
hid设备不是只能用中断传输和控制传输吗?批量传输应该用不了吧。但是ohos.usbManager里面又没有中断传输的接口。这很奇怪。。。

没有中断传输接口,而且使用USB DDK的OH_Usb_SendPipeRequest接口还一直返回-18,都不知道错误是什么意思

老铁 + 1,我4,1也还是这个情况bulkTransfer 的读和写都是-1
老哥解决了吗?我4.0也遇到这个问题,claimInterface 和 bulkTransfer 都是返回 -1 

在HarmonyOS(鸿蒙)开发中,使用ohos.usbManagerbulkTransfer方法向HID(Human Interface Device)设备写入数据时返回-1,通常表示操作失败。这种情况可能由几个原因造成:

  1. 权限问题:确保你的应用已经正确申请并获得了USB设备的访问权限。鸿蒙系统对USB设备的访问有严格的权限控制。

  2. 设备连接状态:检查USB设备是否正确连接到设备,并且系统已正确识别该设备。

  3. 端点配置:确认你使用的端点(endpoint)是正确的,并且该端点支持BULK传输类型。HID设备通常使用中断(Interrupt)传输类型,而不是BULK,这可能是导致问题的原因之一。

  4. 数据传输问题:检查传递给bulkTransfer的数据包大小是否合适,以及数据格式是否正确。对于HID设备,可能需要特定的数据格式或命令。

  5. 驱动或固件问题:设备的固件或系统的USB驱动可能存在问题,导致无法正常通信。

  6. 错误处理:查看系统日志或应用日志,以获取更详细的错误信息,这有助于进一步诊断问题。

HarmonyOS Next 纯血鸿蒙教程在线学习地址:https://www.bilibili.com/video/BV1fw2ZYSEk2

配套课件及涉及源码网盘下载地址:http://bbs.itying.com/topic/6568836e6a4621002b88a6f6

回到顶部