У мене є андроїд-пристрій, який працює як клієнтський пристрій для вільних рук, використовуючи hfp.
Я можу отримати дзвінок, і динаміки та мікрофон працюють належним чином.
Моя проблема полягає в тому, що я, здається, не можу регулювати гучність.
Я спробував використати наступні рядки коду, щоб знайти правильний потік, але, здається, жоден з них не працює.
Я відстежував команду гучності, що надсилається з телефону клієнту в класі HeadsetClientStateMachine
, рядок # 1822 за таким посиланням: HeadsetClientStateMachine від 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 та аудіодрайвером якось неправильний ... Я мало що знаю про низькорівневу реалізацію і не впевнений, що мені слід шукати.