Изменения флага PendingIntent в Android 14Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Изменения флага PendingIntent в Android 14

Сообщение Anonymous »

Я хочу зарегистрировать PendingIntent для моих уведомлений в приложении (они используются как виджеты с обратным отсчетом или звуковым сигналом в точное время, которое можно обновить или отменить в зависимости от состояния).
Это код, который я использовал до сих пор:

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

val alarmPendingIntentFlag = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE){
//WHAT TO DO HERE
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S){
PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_UPDATE_CURRENT
} else { PendingIntent.FLAG_UPDATE_CURRENT }
alarmPendingIntent = PendingIntent.getBroadcast(this, 0,Intent(ALARM_ACTION), alarmPendingIntentFlag)

registerReceiver(alarmReceiver, IntentFilter(ALARM_ACTION))
Мне пришлось поменять его на Android 11+ с

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

PendingIntent.FLAG_UPDATE_CURRENT
в PendingIntent.FLAG_MUTABLE или PendingIntent.FLAG_UPDATE_CURRENT.
Теперь у меня снова возникла проблема с Android 14.

Нацеливание на U+ (версия 34 и выше) запрещает создание или получение
PendingIntent с FLAG_MUTABLE, неявного намерения внутри и без
FLAG_NO_CREATE и FLAG_ALLOW_UNSAFE_IMPLICIT_INTENT по соображениям безопасности
. Чтобы получить уже существующий PendingIntent, используйте
FLAG_NO_CREATE, однако для создания нового PendingIntent с
неявным намерением используйте FLAG_IMMUTABLE.

Так как я могу обновить это для Android 14, чтобы сохранить текущую функциональность обновления намерения свежими данными, когда их необходимо обновить?
Существует PendingIntent.FLAG_ALLOW_UNSAFE_IMPLICIT_INTENT, но не уверен если это нормально, то подходи.

Подробнее здесь: https://stackoverflow.com/questions/774 ... android-14
Ответить

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

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

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

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

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