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 驱动器来验证它是否会解决问题。
在我的 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 驱动器来验证它是否会解决问题。