如何在Android 12中指定可变的挂起意图



我知道有很多类似的问题,但我找不到任何答案。

我正在尝试更新我的应用程序以使用可变的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版本忽略。

相关内容

  • 没有找到相关文章

最新更新