Kein Audiofokus im Vordergrundservice in Android 15

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Kein Audiofokus im Vordergrundservice in Android 15

by Anonymous » Yesterday, 13:35

Ich baue eine Alarm -App. Auf Android 15 kann ich meine App nicht zum Audio -Fokus machen, wenn ein Alarm ausfällt: < /p>

Code: Select all

2025-08-14 08:36:27.935   601-1038  AS.HardeningEnforcer    system_server                        I  Focus request DENIED for uid:10216 clientId:android.media.AudioManager@83ae10bigalex321.audiofocustest.AlarmService$$ExternalSyntheticLambda0@77a2d09 req:2 procState:4
2025-08-14 08:36:27.935   601-1038  AS.AudioService         system_server                        W  Audio focus request blocked by hardening
< /code>
Wie ich verstehe, erkennt OS meinen Dienst nicht als Vordergrund. Ich habe Dokumente gelesen: 
https://developer.android.com/about/version/15/behavior-changes-15
https://developer />  Voller Beispiel Code ist hier:
https://github.com/aikrikunov95/audiofocustest/tree/main
Mein allgemeiner Ansatz ist so.

...
android:foregroundServiceType="mediaPlayback|systemExempted"
< /code>
Ich starte den Dienst mit den folgenden Methoden aus der Benutzeroberfläche: < /p>
val intent = Intent(context, AlarmService::class.java)
val pendingIntent = PendingIntent.getForegroundService(...
systemAlarmManager.setAlarmClock(...
Dann im Dienst des Dienstes OnStartCommand Ich mache sofort einen Vordergrund, vergiss keinen Service -Typ:
ServiceCompat.startForeground(
...
ServiceInfo.FOREGROUND_SERVICE_TYPE_SYSTEM_EXEMPTED or
ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK
< /code>
und versuchen Sie, den Fokus zu erwerben: < /p>
audioManager.requestAudioFocus(audioFocusRequest!!)
< /code>
Die Anforderung ist wie folgt: < /p>
private val audioFocusRequest: AudioFocusRequest? by lazy {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT)
.setAudioAttributes(
AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_ALARM)
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
.build()
)
.setOnAudioFocusChangeListener { /* optional logging */ }
.build()
} else null
}
< /code>
Nach dem Fokus verwende ich eine Instanz von Audiomanager und Vibrator, um tatsächlich Musik zu spielen. Auch hier ist der vollständige Beispielcode oben verknüpft.

Top