【问题标题】:Bluetooth hands free client volume control蓝牙免提客户端音量控制
【发布时间】:2016-03-07 12:01:04
【问题描述】:

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

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

有谁知道是什么导致了这个问题?

编辑:

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

【问题讨论】:

  • 我忘了说:Kitkat 中不存在 HFPClient 类:android.googlesource.com/platform/frameworks/base/+/… 它们是从棒棒糖反向移植的,因此我使用的代码与棒棒糖实现相同。
  • 可能是,我现在正在朝那个方向进行调查。与此同时,我想知道是否存在具有 HFP 客户端配置文件的 android 的已知行为,阻止它控制音量。
  • 奇怪的是声音工作,正在传递蓝牙音量更改事件,并且 setStreamVolume() 方法正在按应有的方式调用。它似乎无法调节音量...
  • 我在不同的硬件上进行了测试,但都具有相同的架构,因为它是我的自定义 rom 唯一支持的架构......

标签: android bluetooth android-4.4-kitkat hfp


【解决方案1】:

你能试试下面吗。 我没有尝试过,但如果我理解正确的话听起来类似的问题:

Android Bluetooth Earpiece Volume

"Android 正在使用 int 6 作为蓝牙音量,并且没有记录。 只需使用 6 而不是 AudioManager.STREAM_VOICE_CALL 并尝试,它应该可以工作"

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

祝你好运,我希望它会成功。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-16
    • 2015-10-21
    • 2011-12-25
    • 2018-01-01
    • 2014-12-30
    • 1970-01-01
    • 2015-03-11
    • 2013-06-21
    相关资源
    最近更新 更多