Android 14 startForeground при BOOT_COMPLETED SecurityException ⇐ JAVA
-
Anonymous
Android 14 startForeground при BOOT_COMPLETED SecurityException
Я пытаюсь перейти на Android 14, и в моем приложении есть функция, которая будет продолжать работать в качестве службы переднего плана, даже если вы перезагрузите устройство (это инструмент, поэтому эта функция необходима), приложение отображает уведомление пользователю (с помощью кнопки «Стоп»). Чтобы запустить службу, пользователю необходимо нажать кнопку в приложении, но теперь, после того как я изменил compileSdk на 34 с 33, я получаю сообщение об ошибке при попытке вызвать startForeground(1, Notification, FOREGROUND_SERVICE_TYPE_LOCATION) в службе onCreate на BOOT_COMPLETED BroadcastReceiver:
Невозможно создать службу MainService: java.lang.SecurityException: запуск FGS с типом location callerApp=ProcessRecord{ef58f87 3065:com.xxx/u0a196} targetSDK=34 требует разрешений: все разрешения allOf=true [ android.permission.FOREGROUND_SERVICE_LOCATION] любое из разрешений allOf=false [android.permission.ACCESS_COARSE_LOCATION, android.permission.ACCESS_FINE_LOCATION], и приложение должно находиться в подходящем состоянии/исключениях для доступа к разрешению только на переднем плане Я добавил все необходимое в файл манифеста, включая разрешение android.permission.FOREGROUND_SERVICE_LOCATION и объявление android:foregroundServiceType="location" для службы.
>
Кто-нибудь знает, чего мне не хватает? Нужно ли мне запрашивать разрешение FOREGROUND_SERVICE_LOCATION во время выполнения? Я уже запрашиваю разрешение ACCESS_FINE_LOCATION во время выполнения.
Спасибо!
Я пытаюсь перейти на Android 14, и в моем приложении есть функция, которая будет продолжать работать в качестве службы переднего плана, даже если вы перезагрузите устройство (это инструмент, поэтому эта функция необходима), приложение отображает уведомление пользователю (с помощью кнопки «Стоп»). Чтобы запустить службу, пользователю необходимо нажать кнопку в приложении, но теперь, после того как я изменил compileSdk на 34 с 33, я получаю сообщение об ошибке при попытке вызвать startForeground(1, Notification, FOREGROUND_SERVICE_TYPE_LOCATION) в службе onCreate на BOOT_COMPLETED BroadcastReceiver:
Невозможно создать службу MainService: java.lang.SecurityException: запуск FGS с типом location callerApp=ProcessRecord{ef58f87 3065:com.xxx/u0a196} targetSDK=34 требует разрешений: все разрешения allOf=true [ android.permission.FOREGROUND_SERVICE_LOCATION] любое из разрешений allOf=false [android.permission.ACCESS_COARSE_LOCATION, android.permission.ACCESS_FINE_LOCATION], и приложение должно находиться в подходящем состоянии/исключениях для доступа к разрешению только на переднем плане Я добавил все необходимое в файл манифеста, включая разрешение android.permission.FOREGROUND_SERVICE_LOCATION и объявление android:foregroundServiceType="location" для службы.
>
Кто-нибудь знает, чего мне не хватает? Нужно ли мне запрашивать разрешение FOREGROUND_SERVICE_LOCATION во время выполнения? Я уже запрашиваю разрешение ACCESS_FINE_LOCATION во время выполнения.
Спасибо!
Мобильная версия