我有一个android设备作为使用hfp的免提客户端设备。
我可以接听电话,扬声器和麦克风工作正常。
我的问题是我似乎无法控制音量。
我尝试使用以下代码行来查找正确的流,但它们似乎都不起作用。
我在以下链接的1822行的HeadsetClientStateMachine
类中跟踪了从电话发送到客户机的音量命令: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()
方法,但音量没有更改。
有没有人知道是什么导致了这个问题?
编辑:
我仍然在寻找答案,现在正在寻找音频HAL实现。我怀疑HAL和音频驱动程序之间的链接是不正确的……我不太了解低级实现,也不确定我应该寻找什么。
发布于 2016-02-19 04:43:03
你能在下面试试吗?我没有尝试过自己,但如果我理解正确,听起来也有类似的问题:
Android Bluetooth Earpiece Volume
“安卓正在使用int 6作为蓝牙音量,没有文档。只需使用6而不是AudioManager.STREAM_VOICE_CALL,然后尝试,它应该可以工作。”
我假设你会用6替换AudioManager.STREAM_BLUETOOTH_SCO。
祝你好运,我希望它能起作用。
https://stackoverflow.com/questions/32321794
复制相似问题