蓝牙免提客户端音量控制

时间:2015-09-01 00:23:59

标签: android bluetooth android-4.4-kitkat hfp

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

Using the following code:

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

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

我尝试使用以下代码行来查找正确的流,但它们似乎都不起作用。

我在以下链接的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()方法,但音量不会改变。< / p>

有谁知道导致这个问题的原因是什么?

修改

我仍在寻找答案,现在正在寻找音频HAL实施。我怀疑HAL和音频驱动程序之间的链接在某种程度上是不正确的......我不太了解低级别的实现,也不确定我应该寻找什么。

1 个答案:

答案 0 :(得分:2)

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

Android Bluetooth Earpiece Volume

Android正在使用int 6进行蓝牙音量而未记录。 只需使用6而不是AudioManager.STREAM_VOICE_CALL并尝试,它应该工作

我假设您将用6替换AudioManager.STREAM_BLUETOOTH_SCO。

祝你好运,我希望它会奏效。