我做了一个 UWP 应用程序。我使用漫游数据。我通过以下方式保存设置:
public static void WriteCode(string pwd)
{
ApplicationDataContainer RoamingSettings = ApplicationData.Current.RoamingSettings;
RoamingSettings.Values["Code"] = EncryptHelper.PwdEncrypt(pwd);
}
我通过以下方式阅读了设置:
public static string GetCode()
{
ApplicationDataContainer RoamingSettings = ApplicationData.Current.RoamingSettings;
string str = (String)RoamingSettings.Values["Code"];
if (!String.IsNullOrEmpty(str))
return str;
else
return EncryptHelper.PwdEncrypt("123");
}
我完成了申请并上传到 Windows 商店并通过了检查。然后我在手机上下载了这个应用程序。
我更改了手机上的 ApplicationData.Current.RoamingSettings。我向手机上的 ApplicationData.Current.RoamingFolder 写了一些东西。
接下来,我关闭了手机上的应用程序并在我的 PC 上下载了该应用程序。但是当我在我的 PC 上打开应用程序时,我发现 ApplicationData.Current.RoamingSettings 和 ApplicationData.Current.RoamingFolder 没有改变任何东西。
我检查了我电脑上的 C:\Users\XXX\AppData\Local\Packages\XXX\RoamingState,什么都没有。我在我的电脑上检查了 C:\Users\XXX\AppData\Local\Packages\XX\Settings,有 roaming.lock 和 settings.dat。但是我无法再读取我在手机上添加的最新设置和漫游数据。
我已经等了 2 个小时,我的 PC 上没有任何变化。
有一点我应该先说明:
1 All the deploy work was done by windows store.
2 I check my PC application setting after closed the app on phone. I even shut down my mobile phone to observe the change to my PC.
我的代码有什么问题?或者漫游数据机制有什么问题?我需要一个答案,谢谢!
最佳答案
您发布的代码是正确的。但是,漫游数据同步失败的原因可能有以下几种:
请记住,漫游数据与用户的 Microsoft 帐户相关联。只有当用户使用相同的 Microsoft 帐户登录其设备并在多台设备上安装该应用程序时,漫游数据才会同步。
设置的漫游不是即时的。系统在确定何时发送数据时会权衡几个因素。我们可以通过监听 ApplicationData.DataChanged 事件来检测本地设备上是否有新的漫游数据。当应用程序数据刚刚完成从云端同步时,会发生此事件。每当设备接收到新的漫游数据时,都会触发 DataChanged 事件,并传入更新的 ApplicationData 对象。这让我们可以在数据发生变化时对我们的应用程序进行任何调整。
对于重要的时间关键设置,请使用与 RoamingSettings 关联的 HighPriority 设置,如下所示:
// High Priority setting, for example, last page position in book reader app
roamingSettings.values["HighPriority"] = "65";
这是漫游设置中的一个特殊键,可用于需要立即同步的数据。将
HighPriority
添加到任何设置将使其尽快同步。 每个设置的名称长度最多为 255 个字符。每个设置的大小最多为 8K 字节,每个复合设置的大小最多为 64K 字节。同步引擎可能会限制可以漫游的设置和文件的总大小。跟踪您尝试漫游的数据量非常重要。如果您尝试同步的数据总量超过限制,则设备之间不会同步任何内容。
如果您在漫游日期使用版本控制,请确保您使用的是正确的版本。
这些是可能导致漫游数据在设备之间不同步的一些可能原因。有关更多信息,请查看 Store and retrieve settings and other app data 中的 漫游数据 。
关于c# - 我的漫游数据在设备之间不同步,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36982605/