Проверки времени выполнения, необходимые для FOREGROUND_SERVICE_SPECIAL_USEAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Проверки времени выполнения, необходимые для FOREGROUND_SERVICE_SPECIAL_USE

Сообщение Anonymous »

Я использую специальную службу переднего плана с обновлениями для Android 14 в соответствии с рекомендациями Google.
На большинстве устройств Android 14 это работает нормально, но на некоторых устройствах возникает следующее исключениечто я ловлю:

Код: Выделить всё

Non-fatal Exception: java.lang.SecurityException
Starting FGS with type specialUse callerApp=ProcessRecord{a5fde95 20787:com.myapp/u0a432} targetSDK=34 requires permissions: all of the permissions allOf=true [android.permission.FOREGROUND_SERVICE_SPECIAL_USE]
Это запускается следующим кодом:

Код: Выделить всё

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE)
{
ServiceCompat.startForeground(this, COUNTDOWN_SERVICE_ID, notification, FOREGROUND_SERVICE_TYPE_SPECIAL_USE);
}
else
{
startForeground(COUNTDOWN_SERVICE_ID, notification);
}
Я видел проблемы с другими фрагментами кода, из-за которых мне приходилось явно проверять разрешение службы во время выполнения на устройствах Samsung, даже если оно предоставлено, поэтому я добавил следующее:

Код: Выделить всё

if (ContextCompat.checkSelfPermission(this, Manifest.permission.FOREGROUND_SERVICE) == PackageManager.PERMISSION_GRANTED)
{
// start foreground service
но это не решило проблему. Если я проверю if (ContextCompat.checkSelfPermission(this, Manifest.permission.FOREGROUND_SERVICE_SPECIAL_USE) == PackageManager.PERMISSION_GRANTED), то он вернет false на протестированных мной устройствах Android 14.
Для полноты моего манифеста есть следующее:

Код: Выделить всё

    


...

android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE"
android:value="[Description of why foreground service is needed]" />


Google прямо заявляет, что для специального использования FGS не требуется никаких проверок во время выполнения. Кто-нибудь знает, чего не хватает?


Подробнее здесь: https://stackoverflow.com/questions/787 ... pecial-use
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»