我正在尝试在 UWP 应用程序 (C# .net) 中使用 HID 类读取 Wii Remote ,类似于 this .
但是,我似乎无能为力,因为我无法获得可写的 HID 句柄,而这是执行 HID SendOutputReport(设备配置所需)所需的。
我已经尝试了几种权限组合,我可以使用 list 中的当前权限很好地读取,但我还无法写入。
我也尝试过修改选择器,看看是否还有另一个可以写入的可用句柄,但可惜,什么也没有。
任何见解都将非常感激。
Public discussion. Similar issue
我当前使用的权限如下所示。
<Capabilities>
<DeviceCapability Name="bluetooth" />
<DeviceCapability Name="humaninterfacedevice">
<!-- Any generic gaming device -->
<Device Id="any">
<Function Type="usage:0004 *"/>
<Function Type="usage:0005 *"/>
</Device>
<!--Wii Remote Device-->
<Device Id="vidpid:057E 0306 bluetooth">
<Function Type="usage:0005 *" />
<Function Type="usage:0001 0005" />
<Function Type="usage:0002 *" />
<Function Type="usage:0003 *" />
<Function Type="usage:0004 *" />
<Function Type="usage:0006 *" />
<!--<Function Type="usage:0007 *" />-->
<Function Type="usage:0008 *" />
<Function Type="usage:0009 *" />
<Function Type="usage:000A *" />
<Function Type="usage:000B *" />
<Function Type="usage:000E *" />
<Function Type="usage:000f *" />
<Function Type="usage:0010 *" />
<Function Type="usage:0011 *" />
<Function Type="usage:0012 *" />
<Function Type="usage:0013 *" />
<Function Type="usage:0014 *" />
<Function Type="usage:0015 *" />
<Function Type="usage:0016 *" />
<Function Type="usage:0017 *" />
<Function Type="usage:0018 *" />
<Function Type="usage:0019 *" />
<Function Type="usage:001A *" />
<Function Type="usage:001B *" />
<Function Type="usage:001C *" />
<Function Type="usage:001D *" />
<Function Type="usage:001E *" />
<Function Type="usage:001F *" />
<Function Type="usage:0021 *" />
</Device>
</DeviceCapability>
</Capabilities>
编辑:添加了类似的问题。
最佳答案
我目前正在为开关 Controller 解决同样的问题。至少对于开关 Controller 来说,它使用UsagePage 0x01
。
查看粘贴的一些 #define here 。此数字转换为 HID_USAGE_PAGE_GENERIC
查看MS Documentation它说它限制对某些页面的访问,其中包括所需的:/
因此,如果 Wiimote 使用与 Joycon 相同的页面,看起来会很糟糕。
<小时/>我仍然希望你能找到解决方案,我也可以使用一个。
关于UWP HID SendOutputReport 始终返回访问被拒绝,需要读写权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48386179/