蓝牙免提客户端音量控制
我有一个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。
祝你好运,我希望它会起作用。