Mac Catalyst(MAUI)自定义HID设备:InputReportCallback不触发且接口打开报错
Mac Catalyst(.NET MAUI)自定义HID USB设备通信问题
我正在开发带沙盒的.NET MAUI Mac Catalyst应用,需要与自定义厂商专属HID USB设备通信。应用通过C#的P/Invoke调用基于Objective-C和IOKit构建的原生iOS库,HID通信依赖IOHIDManager和IOUSBInterface API。
目前核心问题:
- 设备可通过
IOHIDManagerOpen()正常检测并打开 IOHIDDeviceSetReport()能成功发送特征报告(返回状态码0)- 但
IOHIDDeviceRegisterInputReportCallback()始终不触发,无法接收输入报告
为排查问题,我尝试直接调用底层IOKit USB API(IOUSBInterfaceOpen()和IOUSBInterfaceOpenSeize()),二者均返回错误码:kIOReturnNotPermitted (0xe00002e2),提示访问被拒绝——尽管设备可在IOHIDManager中正常枚举和打开。
已验证内容
- 禁用沙盒后问题依旧
- 设备使用厂商专属用法页面(非标准HID)
- 可发送报告,但无法接收输入报告
- 同一设备在Windows用HIDSharp库可正常工作
- 尝试轮询队列,input_Mis元素无法加入队列
当前授权配置
<key>com.apple.security.app-sandbox</key> <true/> <key>com.apple.security.network.client</key> <true/> <key>com.apple.security.device.bluetooth</key> <true/> <key>com.apple.security.files.user-selected.read-write</key> <true/> <key>com.apple.security.files.bookmarks.app-scope</key> <true/> <key>keychain-access-groups</key> <array> <string>$(AppIdentifierPrefix).com.org.app</string> </array> <key>com.apple.security.device.usb</key> <true/> <key>com.apple.security.device.hid</key> <true/> <key>com.apple.security.cs.allow-jit</key> <true/>
请问是否有人成功在Mac Catalyst(.NET MAUI)应用中使用IOHID InputReport回调或IOUSBInterfaceOpen与自定义HID设备通信?Catalyst下接收输入报告是否需额外权限?或这些API在Catalyst运行时受限制?恳请相关人士提供见解,感谢!
内容的提问来源于stack exchange,提问作者Swetha
相关产品推荐
相关产品推荐

