XAMARIN.FORMS Android:针对 Android S+ 时需要设置 FLAG_IMMUTABLE

inn*_*nom 10 android xamarin.forms

我已经见过这个问题几次了,但从未见过 xamarin.forms:

当我尝试在 android 12 上部署时,我得到:

com.interiorcircle.interiorcircledroid:面向 S+(版本 31 及更高版本)要求在创建 PendingIntent 时指定 FLAG_IMMUTABLE 或 FLAG_MUTABLE 之一。强烈考虑使用 FLAG_IMMUTABLE,仅当某些功能依赖于可变的 PendingIntent 时才使用 FLAG_MUTABLE,例如,如果需要与内联回复或气泡一起使用。

在图片中: 在此输入图像描述

显然,需要设置一个标志,但我不知道在哪里。

这里有人有帮助吗?

小智 8

就我而言,以下代码修复了运行时错误:

var pendingIntentFlags = (Build.VERSION.SdkInt >= BuildVersionCodes.S)
                ? PendingIntentFlags.UpdateCurrent | PendingIntentFlags.Mutable
                : PendingIntentFlags.UpdateCurrent;
var pendingActivityIntent = PendingIntent.GetActivity(Application.Context, requestCode, activityIntent, pendingIntentFlags);
var pendingIntent = PendingIntent.GetBroadcast(Application.Context, requestCode, intent, pendingIntentFlags);
Run Code Online (Sandbox Code Playgroud)

  • 你是如何使用这个代码的?在 MainActivity 内部? (4认同)

Iva*_*čin 2

如果您无法弄清楚在哪里,那么您可能不会PendingIntent在代码中使用。

在这种情况下,这意味着您使用的某些软件包正在使用此代码,并且它们需要修复它。如果他们尚未意识到该问题,您可能需要向他们报告该问题。