蓝牙免提客户端音量控制

我有一个Android设备充当免提客户端设备使用hfp。

使用下面的代码:

我能够接到电话,扬声器和麦克风按预期工作。

我的问题是,我似乎无法控制音量。

我尝试使用下面的代码行来find正确的stream,但没有一个似乎工作。

我跟踪了从手机发送给客户端的音量命令HeadsetClientStateMachine ,行#1822在以下链接: HeadsetClientStateMachine from lolipop

 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()方法,但音量不会改变。

有谁知道什么可能导致这个问题?

编辑:

我仍然在寻找答案,现在正在寻找audioHAL实现。 我怀疑,HAL和audio驱动程序之间的链接是不正确的…我不太了解低层次的实现,我不知道我应该寻找什么。

你可以请尝试下面。 我没有尝试自己,但听起来类似的问题,如果我理解正确的话:

Android蓝牙耳机音量

Android是使用int 6的蓝牙音量和没有logging。只需使用6,而不是AudioManager.STREAM_VOICE_CALL尝试,它应该工作

我假设你将用6replaceAudioManager.STREAM_BLUETOOTH_SCO。

祝你好运,我希望它会起作用。