You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 04:02:46