我正在寻找一个简单的无线HID接口设备的Linux/Windows/Mac Java HID控制器.我对USB4Java LibUsb库进行了修改无济于事,而且我已经朝着JavaHIDAPI的方向发展.
对我来说不幸的是,我真的不知道我正在做什么,除了一个相当不错的高级编程技能集(C#/ VB.Net),并切换到这是杀了我.
我发现的方向说我首先需要编译这里找到的HIDAPI库.它说它会构建一个名为hidapi-jni.dll的东西(它没有).
无论如何,我认为这是我需要去的地方,因为HID什么都不做,只是简单地向无线控制器发送信号和从无线控制器接收信号(并响应接收到的信号).
有没有为此使用JavaHIDAPI的分步教程?还是有更好的图书馆?(我注意到这有点......过时了).
我尝试了以下内容:
static{ System.loadLibrary("hidapi"); }
.
.
.
public static void main(string[] Args) throws . . . {
ClassPathLibraryLoader.loadNativeHIDLibrary();
HIDDevice dev = HIDManager.getInstance().openById(VEND_ID, PROD_ID, null);
.
.
.
}
Run Code Online (Sandbox Code Playgroud)
我正在运行的问题是(除了HIDAPI似乎没有构建到HIDAPI-jni.dll中这一事实)HIDManager.openById(...)总是返回null.另外,我移动了内置在C:...\Java ...\bin目录中的hidapi.dll ......或者其他东西,我确定它是正确的,因为没有任何不满意的链接错误.这真的令人沮丧,因为似乎没有任何关于Java和HID的新手指南.
我在这做错了什么?
我回答这个问题有点迟了,但我写了一个名为hid4java的库,可以解决你的问题.
它基于Java Native Access(JNA),它比复杂的JNI咒语简单得多.
我必须编写它,因为javahidapi已经过时,底层signal11/hidapi代码已经大大改进了.较旧版本的hidapi库在OS X上出现了带有附加/分离事件的问题,这些事件现已修复,因此需要进行升级.
此外,我发现无法通过OS X上的usb4java声明USB HID设备,所以我最终编写了这个库来解决这个问题.
希望能帮助到你.