Это код, который я использовал до сих пор:
Код: Выделить всё
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))
Код: Выделить всё
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
Мобильная версия