Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 蓝牙免提客户端音量控制_Android_Bluetooth_Android 4.4 Kitkat_Hfp - Fatal编程技术网

Android 蓝牙免提客户端音量控制

Android 蓝牙免提客户端音量控制,android,bluetooth,android-4.4-kitkat,hfp,Android,Bluetooth,Android 4.4 Kitkat,Hfp,我有一个安卓设备作为免提客户端设备使用hfp 我能够接到电话,扬声器和麦克风按预期工作 我的问题是我似乎无法控制音量 我尝试使用以下代码行来找到正确的流,但它们似乎都不起作用 我在以下链接的类HeadsetClientStateMachine,第1822行中跟踪了从手机发送到客户端的音量命令: 当我在手机上更改音量时,我确实会看到显示声音更新值的日志,这意味着正在调用setStreamVolume()方法,但音量没有改变 有人知道是什么导致了这个问题吗 编辑: 我仍然在寻找答案,现在正在寻找音

我有一个安卓设备作为免提客户端设备使用hfp

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

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

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

我在以下链接的类
HeadsetClientStateMachine
,第1822行中跟踪了从手机发送到客户端的音量命令:

当我在手机上更改音量时,我确实会看到显示声音更新值的日志,这意味着正在调用
setStreamVolume()
方法,但音量没有改变

有人知道是什么导致了这个问题吗

编辑:


我仍然在寻找答案,现在正在寻找音频HAL的实现。我怀疑HAL和音频驱动程序之间的链接不正确。。。我对底层实现了解不多,也不确定我应该寻找什么。

请尝试下面的内容。 我没有亲自尝试,但如果我理解正确,听起来类似的问题:

“Android正在使用int 6作为蓝牙卷,没有文档记录。 只需使用6而不是AudioManager.STREAM\u VOICE\u呼叫并尝试,它应该可以工作“

我想你会用6取代AudioManager.STREAM\u BLUETOOTH\u SCO


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

我忘了提到:Kitkat中不存在HFPClient类:它们是从lollipop向后移植的,因此我使用的代码与lollipop实现相同。可能是这样,我现在正在朝这个方向进行研究。同时,我想知道android的HFP客户端配置文件是否存在阻止其控制音量的已知行为。奇怪的是声音正常工作,蓝牙音量更改事件正在传递,setStreamVolume()方法正在按其应有的方式调用。它似乎无法调整音量……我在不同的硬件上进行了测试,但都采用了相同的体系结构,因为这是我的定制rom唯一支持的体系结构……我想知道这是否与问题有关:
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);
    }