2015-09-01 4 views
80

Ich habe ein Android-Gerät als Freisprecheinrichtung mit hfp.Bluetooth Freisprecheinrichtung Lautstärkeregler

Using the following code:

Ich bin in der Lage einen Anruf und die Lautsprecher und das Mikrofon erhalten werden wie erwartet funktioniert.

Mein Problem ist, dass ich nicht scheinen kann, die Lautstärke zu kontrollieren.

Ich habe versucht, mit den folgenden Codezeilen den richtigen Stream zu finden, aber keiner von ihnen scheint zu funktionieren. 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); 
    } 

Wenn ich die Lautstärke am Telefon zu ändern, ich sehe:

ich die Lautstärke Befehl wird vom Telefon an den Client in der Klasse HeadsetClientStateMachine, Linie # 1822 in dem folgenden Link verfolgt gesendet Das Protokoll zeigt den aktualisierten Wert des Sounds an, was bedeutet, dass die setStreamVolume()-Methode aufgerufen wird, sich aber die Lautstärke nicht ändert.

Weiß jemand, was könnte dieses Problem verursachen?

EDIT:

ich immer noch auf eine Antwort zu suchen und bin nun auf der Suche in Richtung auf die Audio-HAL-Implementierung. Ich vermute, dass die Verbindung zwischen der HAL und dem Audiotreiber irgendwie inkorrekt ist ... Ich weiß nicht viel über eine Implementierung auf niedriger Ebene und bin mir nicht sicher, wonach ich suchen sollte.

+1

Ich habe vergessen zu erwähnen: Die HFPClient-Klassen sind nicht in Kitkat vorhanden: https://android.googlesource.com/platform/frameworks/base/+/kitkat-release/core/java/android/bluetooth/ sie waren zurück Portiert von Lollipop, also der Code, den ich benutze, ist der selbe wie die Lutscherimplementierung. – Distwo

+1

Glauben Sie, dass dies das Problem verursacht? –

+1

Es könnte sein, ich untersuche gerade in dieser Richtung. Parallel dazu habe ich mich gefragt, ob es ein bekanntes Verhalten von Android mit HFP-Client-Profil gibt, das es daran hindert, das Volume zu kontrollieren. – Distwo

Antwort

2

Könnten Sie bitte versuchen, unten. Ich habe mich nicht versuchen, aber klingt ähnliches Problem, wenn ich das richtig verstehe.

Android Bluetooth Earpiece Volume

"Android ist int 6 für Bluetooth-Lautstärke mit und nicht dokumentiert nur 6 statt AudioManager.STREAM_VOICE_CALL verwenden und versuchen, es sollte "

arbeiten ich gehe davon aus für Sie AudioManager.STREAM_BLUETOOTH_SCO mit 6.

Viel Glück wird zu ersetzen, ich hoffe, es wird funktionieren.

+0

Ich habe das auch versucht ... – Distwo

Verwandte Themen