私は通信する必要のあるBluetooth HIDデバイスを持っています。ターゲットプラットフォームはAndroid 5.x +です。現在、Nexus 7 2013タブレットでテスト中です。Android 6.xではhidraw set-report/send-reportが動作しません
Androidの5.xでコードが正常に動作し、Android 5.xでレポートを受信、送信、設定することができました。
Android 6.xでは、端末から送信されたレポートしか受信できませんが、レポートを送信または設定できません。私のset/sendレポート要求は、HID/BTスタックによって黙って無視されるようです。
/dev/hidraw *ノードと通信するコードは、rootとしてネイティブデーモンとして実行されます。
Android 6.xでBluetooth hidデバイスにレポートを送信/設定できるようにするための新しい要件はありますか?これが動作するようにAOSPに変更を加えることはできますか?
[更新] Logcatは言う:
05-17 11:22:56.085 2455-4061/com.android.bluetooth E/bt_btif: uhid_event: Invalid size read from uhid-dev: 4108 != 4
uhidのみ4バイトを返すでしょうから、私が読んでどのように理解していません!最初の4バイトには、イベントのtype
のみが含まれています。 read()
がsizeof(struct uhid_event)
バイト未満になるシナリオはありますか?
これは、uhidドライバのバグを示していますか?
私は、uhidドライバがアンドロイドカーネルソースの作業コードを使い果たしている可能性が増えている疑いがあります。私はより多くの情報を取得すると更新されます。 – GPS