Macos 在JNI(OSX)中添加USB通知(添加/删除)-失败

Macos 在JNI(OSX)中添加USB通知(添加/删除)-失败,macos,notifications,java-native-interface,usb,Macos,Notifications,Java Native Interface,Usb,我使用了以下代码: 并将其添加到我的jni库中。通知方法永远不会被调用 然后,我在一个小应用程序中测试了代码(没有java/C代码)。我工作得很好 我的猜测是Java正在阻止通知的发生 关于我能做什么有什么想法吗 我认为这是因为Java/JNI环境中没有运行循环 看看是如何实现的,特别是它如何创建一个单独的线程来运行hid\u runloop\u thread(),然后调用CFRunLoopRunInMode(),直到返回完成/取消状态 请注意,运行循环是特定于线程的,因此在调用CFRunLo

我使用了以下代码:

并将其添加到我的jni库中。通知方法永远不会被调用

然后,我在一个小应用程序中测试了代码(没有java/C代码)。我工作得很好

我的猜测是Java正在阻止通知的发生


关于我能做什么有什么想法吗

我认为这是因为Java/JNI环境中没有运行循环

看看是如何实现的,特别是它如何创建一个单独的线程来运行
hid\u runloop\u thread()
,然后调用
CFRunLoopRunInMode()
,直到返回完成/取消状态

请注意,运行循环是特定于线程的,因此在调用
CFRunLoopAddSource()
IOServiceAddMatchingNotification()
之前,需要从同一线程执行
CFRunLoopRunInMode()
调用