我有一个Android设备充当使用hfp的免提客户端设备。
我能够接听电话,并且扬声器和麦克风按预期工作。
我的问题是我似乎无法控制音量。
我尝试使用以下代码行来找到正确的流,但是它们似乎都不起作用。
我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和音频驱动程序之间的链接某种程度上是不正确的...我对底层实现不太了解,也不确定我应该寻找什么。