Я строю приложение для сигнализации. На Android 15 я не могу сделать свое приложение для аккуратного фокусировки, когда выходит тревога: < /p>
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>
Как я понимаю, ОС не распознает мой сервис как передний план. Я прочитал документы:
https://developer.android.com/about/ver ... anges-15br />https://developer.android.com/media/opt ... udio-focus> Но не понимаю, что я не знаю/pmoptimize/audio-focus> но не понимаю. /> Полный пример код здесь:
https://github.com/aikrikunov95/audiofo ... ainобразно
...
android:foregroundServiceType="mediaPlayback|systemExempted"
< /code>
Я запускаю службу из пользовательского интерфейса с этими методами: < /p>
val intent = Intent(context, AlarmService::class.java)
val pendingIntent = PendingIntent.getForegroundService(...
systemAlarmManager.setAlarmClock(...
< /code>
Тогда в службе я сразу же делаю его на переднем плане, не забудьте тип службы: < /p>
ServiceCompat.startForeground(
...
ServiceInfo.FOREGROUND_SERVICE_TYPE_SYSTEM_EXEMPTED or
ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK
< /code>
и попытаться получить фокус: < /p>
audioManager.requestAudioFocus(audioFocusRequest!!)
< /code>
Запрос такой: < /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>
После того, как фокусируется, я использую экземпляр Audiomanager и Vibrator, чтобы фактически воспроизводить музыку. Опять же, полный пример кода связан выше.
Подробнее здесь: https://stackoverflow.com/questions/797 ... android-15
Нет аудио фокусировки на переднем плане в Android 15 ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1755265331
Anonymous
Я строю приложение для сигнализации. На Android 15 я не могу сделать свое приложение для аккуратного фокусировки, когда выходит тревога: < /p>
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>
Как я понимаю, ОС не распознает мой сервис как передний план. Я прочитал документы:
https://developer.android.com/about/versions/15/behavior-changes-15br />https://developer.android.com/media/optimize/audio-focus> Но не понимаю, что я не знаю/pmoptimize/audio-focus> но не понимаю. /> Полный пример код здесь:
https://github.com/aikrikunov95/audiofocustest/tree/mainобразно
...
android:foregroundServiceType="mediaPlayback|systemExempted"
< /code>
Я запускаю службу из пользовательского интерфейса с этими методами: < /p>
val intent = Intent(context, AlarmService::class.java)
val pendingIntent = PendingIntent.getForegroundService(...
systemAlarmManager.setAlarmClock(...
< /code>
Тогда в службе я сразу же делаю его на переднем плане, не забудьте тип службы: < /p>
ServiceCompat.startForeground(
...
ServiceInfo.FOREGROUND_SERVICE_TYPE_SYSTEM_EXEMPTED or
ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK
< /code>
и попытаться получить фокус: < /p>
audioManager.requestAudioFocus(audioFocusRequest!!)
< /code>
Запрос такой: < /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>
После того, как фокусируется, я использую экземпляр Audiomanager и Vibrator, чтобы фактически воспроизводить музыку. Опять же, полный пример кода связан выше.
Подробнее здесь: [url]https://stackoverflow.com/questions/79736477/no-audio-focus-in-foreground-service-in-android-15[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия