0

次のコードを使用しました。

HID USB/Bluetooth デバイスが Cocoa に接続されていることを知る方法は?

それを私のjniライブラリに追加しました。通知メソッドが呼び出されることはありません。

次に、小さなアプリでコードをテストしました(Java /ほとんどCコードなし)。私はすべてうまくいきます。

私の推測では、Java が通知の実行を妨げていると思われます。

私ができることについてのアイデアはありますか?

4

1 に答える 1

0

これは、Java/JNI 環境で実行ループが実行されていないためだと思います。

javahidapiがどのように実装されているかを見てみましょう。具体的には、別のスレッドを作成して run を実行し、終了/キャンセル ステータスが返されるまでhid_runloop_thread()呼び出します。CFRunLoopRunInMode()

CFRunLoopAddSource ()実行ループはスレッド固有であるため、 を呼び出す前に同じスレッドからと をIOServiceAddMatchingNotification()呼び出す必要があることに注意してくださいCFRunLoopRunInMode()

于 2012-12-04T20:32:34.383 に答える