我知道有很多类似的问题,但我找不到任何答案。
我正在尝试更新我的应用程序以使用可变的PendingIntent
。我知道对于Android 12+,我可以做
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, updateIntent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_MUTABLE);
然而,我的应用程序的minSdk
为24,而PendingIntent.FLAG_MUTABLE
是在sdk 31中添加的。当我尝试这个时
PendingIntent pendingIntent = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
pendingIntent = PendingIntent.getBroadcast(context, 0, updateIntent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_MUTABLE);
} else {
pendingIntent = PendingIntent.getBroadcast(context, 0, updateIntent, PendingIntent.FLAG_UPDATE_CURRENT);
}
我在安卓工作室的CCD_;缺少未决意图可变性标志";。这是安卓工作室的错误吗?或者我需要做其他事情来处理可变的挂起意图吗?
您不需要if
块。你可以使用:
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0,
updateIntent, PendingIntent.FLAG_UPDATE_CURRENT |
PendingIntent.FLAG_MUTABLE);
尽管常量PendingIntent.FLAG_MUTABLE
是在API 31中引入的,但此代码将在旧版本的Android上工作,因为此标志将被API 31之前的Android版本忽略。