Ich versuche einen Alarmton über die Lautsprecher über den Alarmkanal bei maximaler Lautstärke zu spielen. Dafür benutze ich den AudioManager und einen MediaPlayer. Wenn ich einen Kopfhörer anschließe, wird der Alarm immer noch über die Lautsprecher wiedergegeben, aber die Lautstärke des Alarms, der über die Lautsprecher wiedergegeben wird, nimmt drastisch ab und macht es für meinen Zweck unbrauchbar.
Gibt es eine Möglichkeit, diese Verringerung der Lautstärke zu verhindern?
Der Code, den ich verwende, ist dies:
%Vor%
Um sicherzustellen, dass die Lautstärke nicht abgesenkt wurde, rufe ich alle 5 Sekunden Folgendes an.
%Vor%
Ich bin innerhalb der EU ansässig, also könnte es durch diese Regelung verursacht werden, die sich mit maximaler Lautstärke beim Einstecken von Kopfhörern beschäftigt. Da mir nur die Lautsprecherausgabe wichtig ist, brauche ich einen Workaround, selbst wenn das der Fall ist.
Bearbeiten:
Dieses Problem tritt sowohl bei meiner App als auch bei System-Apps (wie dem Wecker) und bei Nexus 5 und 6 auf. Da ich auch Berichte von anderen Telefonherstellern gelesen habe, nehme ich Ich glaube, das Problem ist ausschließlich bei der Nexus-Linie von Telefonen. Ich brauche einen Workaround.
Ich habe nur das Ergebnis von getStreamMaxVolume (AudioManager.STREAM_ALARM) und getStreamVolume (AudioManager.STREAM_ALARM) überprüft. Beide zeigen 7 an, egal ob der Kopfhörer eingesteckt ist oder nicht.
Ich habe bemerkt, dass bei eingesteckten Kopfhörern die Lautstärkeanzeige auf "Max" gestellt ist. Wenn ich die Lautstärke reduziere und schnell wieder höre, erhöht sich die Lautstärke auf die Lautstärke ohne Kopfhörer. Da dies jedoch eine Benutzerinteraktion erfordert, ist es nicht die Lösung, nach der ich suche.