1

Ich versuche, die Lautsprecher zu ermöglichen, während ich in einem Anruf am:Audiomanager Lautsprecher nicht funktionieren

final AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); 
audioManager.setSpeakerphoneOn(true); 

Ich habe versucht, nach den setSpeakerphoneOn() die Audiomanager zu überprüfen und erhalten, dass der Sprecher noch nicht eingeschaltet ist, indem er isSpeakerphoneOn()

audioManager.isSpeakerphoneOn(); 

In meinem Protokoll kann ich einige Fehler sehen, dass ich nicht verstehen kann:

E/AudioManager: Don't setBluetoothScoOn-PackageName: com.myapp.app on = false 
E/AudioManager: Don't setSpeakerphoneOn-PackageName: com.myapp.app on = true 

Ich kann im Forum nichts über diesen Fehler finden.

Hat nicht auf Geräten funktioniert: ZTE Z981, Huawei p9, habe ich bereits versucht this, und android.permission.MODIFY_AUDIO_SETTINGS ist gewährt.

Antwort

1

Ich habe dasgefunden(der aktuelle Modus), bevor setSpeakerphoneOn() behebt den Fehler auf dem logcat:

AudioManager audioManager = (AudioManager)getApplicationContext().getSystemService(Context.AUDIO_SERVICE); 
audioManager.setMode(AudioManager.MODE_IN_CALL); 
audioManager.setSpeakerphoneOn(true); 
2

Hallo lesen android Entwickler Artikel

https://developer.android.com/reference/android/media/AudioManager.html

erklären es klar

Sie benötigen Berechtigung setzen: MODIFY_AUDIO_SETTINGS in manifest

diese Zeile hinzufügen in manifest

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 
+0

Benötigt Permission arbeitet: MODIFY_AUDIO_SETTINGS. –

+0

Ich lese. Ich habe diese Erlaubnis bereits. Es funktioniert bereits in allen Geräten außer ZTE. – motis10

+0

Diese Konstante wurde in API-Ebene 5 nicht weiter unterstützt. Legen Sie das Audio-Routing nicht direkt fest, sondern verwenden Sie stattdessen die Methoden setSpeakerphoneOn(), setBluetoothScoOn(). –

0

1. setSpeakerphoneOn() nur auf setMode(AudioManager.MDOE_IN_CALL);

Verwandte Themen