ヘッドセット キー (ボリューム +、ミドル キー、ボリューム -) を使用してアプリを制御したいと考えています。
メディア キーの検出に問題はありません。
- 中央のクリックでトリガーされる再生/一時停止
- 次/前、音量ボタンの長押しでトリガー
他のすべてを検出する(そして理想的には傍受する)のに問題があります。特にボリュームキーに興味があります。
!! onKeyDownまたは MEDIA_BUTTON をリッスンするソリューション、または(AudioService 経由などで)ボリュームの変更をリッスンするソリューションは、電話のボリューム キーでは機能しますが、Bluetooth のボリューム キーでは機能しません!!
詳細情報: (情報として) onKeyDown のアクティビティでは、ヘッドセットのキーが押されていません (電話の音量ロッカーのクリックのみが検出されます)。
デバイスの音量が最大/最小の場合はトリガーがないため、音量の変化からクリックを推測することはできません。また、電話の音量ボタンのように、ヘッドセットで最大音量を超えて設定しようとすると、音量ダイアログが表示されません。
デバッガーでは、最大ボリュームの vol+ で発生する唯一のことは、デバッグ モードで avrcp から報告されるいくつかのアクションです。
07:04:08.220 7106-7250/? I/BluetoothAvrcpServiceJni: btavrcp_volume_change_callback
07:04:08.220 7106-30330/? V/Avrcp: MSG_NATIVE_REQ_VOLUME_CHANGE: volume=127 ctype=13
07:04:08.281 5937-13180/? I/EDMNativeHelperService: isAVRCPProfileEnabled
07:04:08.285 7106-7250/? I/BluetoothAvrcpServiceJni: btavrcp_volume_change_callback
07:04:08.285 7106-30330/? V/Avrcp: MSG_NATIVE_REQ_VOLUME_CHANGE: volume=127 ctype=15
サービスでこれらのイベントを取得するにはどうすればよいですか? または、そのようなヘッドセットのクリックを検出するための便利な代替手段はありますか?