Xamarin.Essentials Play 商店更新后 SecureStorage 未在 android 中保留

Xamarin.Essentials SecureStorage not persisting in android after play store update

在我的 Xamarin.Forms 应用程序上,我想在 Play 商店更新时保留 user/token 信息。在 iOS 它确实按预期工作,即使在手动 uninstall/reinstall.

之后数据仍然存在

我已经完成了 MainActivity 中 android 上 Essentials 的所有初始化步骤:

    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);

        Xamarin.Essentials.Platform.Init(this, savedInstanceState);
        global::Xamarin.Forms.Forms.Init(this, savedInstanceState);

       [...]
    }

    public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
    {
        Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);

        base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
    }

并且数据是这样保存的:

await SecureStorage.SetAsync("token", user.MobileServiceAuthenticationToken);

如何在 Android 中实现与 iOS 相同的行为?

要解决这个问题,您需要将其添加到您的清单文件中

<application android:allowBackup="false" ... >
</application>

禁用自动备份。这是 Auto backup 的简要介绍。您应该能够通过删除通常存储备份的 Google 驱动器来验证它是否会解决问题。