XAMARIN.表格Android:面向Android S+时需要设置FLAG_IMMUTABLE

evrscar2  于 2022-12-16  发布在  Android
关注(0)|答案(4)|浏览(361)

我已经看到这个问题几次了,但从来没有为xamarin。形式:
当我尝试在Android 12上部署时,我得到:
com.interiorcircle.interiorcircledroid:以S+(版本31及更高版本)为目标要求在创建PendingIntent时指定FLAG_IMMUTABLE或FLAG_MUTABLE之一。强烈考虑使用FLAG_IMMUTABLE,仅当某些功能依赖于可变的PendingIntent时才使用FLAG_MUTABLE,例如,需要将其与内联回复或气泡一起使用时。
如图所示:

显然,需要设置一个标志,但我不知道在哪里。
有人能帮忙吗?

zxlwwiss

zxlwwiss1#

在我的例子中,下面的代码修复了运行时错误:

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);
j2qf4p5b

j2qf4p5b2#

安装Xamarin.AndroidX.work.runtime来移 debugging 误。请看下面的链接。
参见以下https://stackoverflow.com/a/70157415/6902149

zte4gxcn

zte4gxcn3#

如果您不能确定在哪里,那么您可能不会在代码中使用PendingIntent
在这种情况下,这意味着您使用的一些软件包正在使用此代码,他们需要修复它。如果他们还没有意识到这个问题,您可能需要向他们报告。

bxpogfeg

bxpogfeg4#

我能够通过添加Xamarin.AndroidX.work.runtime NuGet包来解决Xamarin项目的这个问题。

相关问题