hfpを使用してハンズフリークライアントデバイスとして機能するAndroidデバイスがあります。
電話を受けることができ、スピーカーとマイクは期待どおりに機能しています。
私の問題は、音量を制御できないように見えることです。
次のコード行を使用して正しいストリームを見つけようとしましたが、どれも機能していないようです。
電話からクラスのクライアントに送信されているボリュームコマンドを追跡しHeadsetClientStateMachine
ました。次のリンクの行#1822:lolipopのHeadsetClientStateMachine
case EVENT_TYPE_VOLUME_CHANGED:
if (event.valueInt == HeadsetClientHalConstants.VOLUME_TYPE_SPK) {
mAudioManager.setStreamVolume(AudioManager.STREAM_BLUETOOTH_SCO, event.valueInt2, AudioManager.FLAG_SHOW_UI);
mVgsFromStack = true;
Log.d(TAG, "EventVolumeChange STREAM_BLUETOOTH_SCO value: " + event.valueInt2);
}
電話で音量を変更すると、サウンドの更新された値を示すログが表示されます。これは、setStreamVolume()
メソッドが呼び出されていることを意味しますが、音量は変更されません。
誰かがこの問題を引き起こしている可能性があることを知っていますか?
編集:
私はまだ答えを探しており、現在オーディオHALの実装に目を向けています。HALとオーディオドライバ間のリンクがどういうわけか間違っているのではないかと思います...低レベルの実装についてはよくわからず、何を探すべきかわかりません。