我的漫游数据不会在设备之间同步

我做了一个UWP应用程序。 我使用roamingdata.I保存设置:

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上打开应用程序时,我发现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个小时,我的电脑没有变化。

我应该首先说明一些事情:

  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. 

我的代码出了什么问题? 或者roamingdata机制有什么问题? 我需要一个答案,谢谢!

您发布的代码是正确的。 但是,漫游数据同步失败可能有一些原因:

  1. 如果用户使用Microsoft帐户登录其设备,则任何用户都可以从漫游应用数据中受益。 但是,用户和组策略管理员可以随时关闭设备上的漫游应用程序数据。 如果用户选择不使用Microsoft帐户或禁用漫游数据function,她仍然可以使用您的应用程序,但应用程序数据对于每个设备都是本地的。

    请记住,漫游数据与用户的Microsoft帐户相关联。 漫游数据仅在用户使用相同的Microsoft帐户登录其设备并在多个设备上安装应用程序时才会同步。

  2. 不要将漫游用于依赖于即时同步的数据。 Windows不保证即时同步; 如果用户处于脱机状态或高延迟网络,漫游可能会显着延迟。

    漫游设置不是即时的。 在确定何时发送数据时,系统会权衡几个因素。 我们可以通过侦听ApplicationData.DataChanged事件来检测新的漫游数据是否已到达本地设备。 当应用数据刚刚从云端同步时,会发生此事件。 设备每次接收到新的漫游数据时,都会触发DataChanged事件,并传入更新的ApplicationData对象。 这使我们可以在数据发生变化时对我们的应用进行任何调整。

    对于重要的时间关键设置,请使用与RoamingSettings相关联的HighPriority设置,如下所示:

     // High Priority setting, for example, last page position in book reader app roamingSettings.values["HighPriority"] = "65"; 

    这是我们可以用于需要立即同步的数据的漫游设置中的特殊键。 将HighPriority添加到任何设置将使其尽快同步。

  3. 不要漫游大量的应用数据。 应用可能会漫游的应用数据量有限制; 使用RoamingStorageQuota属性来获得此最大值。 如果应用程序达到此限制,则在应用程序数据存储的大小不再超过限制之前,任何数据都无法漫游。

    每个设置的名称最多可以包含255个字符。 每个设置的大小最多为8K字节,每个复合设置的大小最多为64K字节。 同步引擎可能会限制可以漫游的设置和文件的总大小。 跟踪您尝试漫游的数据量非常重要。 如果您尝试同步的数据总量超出限制,则设备之间不会同步任何内容。

  4. 应用数据仅在具有相同版本号的已安装应用之间漫游。 例如,版本2上的设备将在彼此之间转换数据,而版本3上的设备将执行相同操作,但在运行版本2的设备和运行版本3的设备之间不会发生漫游。如果您安装使用各种设备的新应用程序其他设备上的版本号,新安装的应用程序将同步与最高版本号关联的应用程序数据。

    如果您在漫游日期使用版本控制,请确保您正在处理正确的版本。

这些是可能导致漫游数据在设备之间不同步的一些可能原因。 有关详细信息,请检查存储中的 漫游数据 并检索设置和其他应用数据 。