Ich habe ein Android-Gerät, das als Freisprech-Client-Gerät mit HPP fungiert.
Verwenden Sie den folgenden Code:
Ich kann einen Anruf entgegennehmen und die Lautsprecher und das Mikrofon funktionieren wie erwartet.
Mein Problem ist, dass ich die Lautstärke scheinbar nicht regeln kann.
Ich habe versucht, die folgenden Codezeilen zu verwenden, um den richtigen Stream zu finden, aber keine davon scheint zu funktionieren.
Ich habe den Volume-Befehl verfolgt, der vom Telefon an den Client in der Klasse HeadsetClientStateMachine
, Zeile 1822, unter folgendem Link gesendet wird : HeadsetClientStateMachine von 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 ändere, wird im Protokoll der aktualisierte Wert des Tons angezeigt. Dies bedeutet, dass die setStreamVolume()
Methode aufgerufen wird, die Lautstärke sich jedoch nicht ändert.
Weiß jemand, was dieses Problem verursachen könnte?
BEARBEITEN:
Ich bin immer noch auf der Suche nach einer Antwort und schaue jetzt auf die Audio-HAL-Implementierung. Ich vermute, dass die Verbindung zwischen dem HAL und dem Audiotreiber irgendwie falsch ist ... Ich weiß nicht viel über die Implementierung auf niedriger Ebene und bin mir nicht sicher, wonach ich suchen soll.