【问题标题】:Windows Phone 8.1 Silverlight Unique device IdWindows Phone 8.1 Silverlight 唯一设备 ID
【发布时间】:2015-02-23 14:02:08
【问题描述】:

我想知道是否有办法为 Windows phone 8.1 Silverlight 应用程序找到唯一的设备 ID。我尝试使用

Windows.Phone.System.Analytics.HostInformation.PublisherHostId

我在这个主题的一个类似问题上找到了,但我收到了这个错误:

http://pokit.org/get/?a9872a6ecf1714d138a71d835ccb8e27.jpg

我转到 Package.appxmanifest 文件,但在 Capabillities 部分下找不到此选项。

我的问题是:有没有办法从应用程序中获取字符串形式的唯一 ID,以便我可以在我的在线数据库中使用该字符串来了解请求来自哪个设备,因为我启用了多个配置文件在我在同一设备上的应用程序中?

【问题讨论】:

    标签: c# silverlight windows-phone-8.1


    【解决方案1】:

    我找到了问题的答案。事实证明,我可以使用 Windows.Phone.System.Analytics.HostInformation.PublisherHostId 方法,但我必须检查 WMAppManifest.xml 文件中的 ID_CAP_IDENTITY_DEVICE 功能。该文件可以在 Windows phone 8.1 Silverlight 应用程序的属性下找到。

    【讨论】:

      【解决方案2】:

      您可以改用GetPackageSpecificToken

      HardwareToken packageSpecificToken;
      packageSpecificToken = Windows.System.Profile.HardwareIdentification.GetPackageSpecificToken(null);
      IBuffer buffer = packageSpecificToken.Id;
      string id = CryptographicBuffer.EncodeToHexString(buffer);
      

      此 ID 可随硬件​​更改而更改。查看here 了解更多信息以及如何容忍这些更改。

      【讨论】:

      • 这是我尝试的第一件事,但 HardwareToken 仅适用于 RT 应用程序,正如我所写的,我需要 Silverlight 应用程序的东西。
      【解决方案3】:

      似乎有一个DeviceInformation class,至少根据文档,它有一个id property,它是“代表设备身份的字符串。”。

      【讨论】:

      • 这对我来说不是很有用,因为每当用户需要从数据库中获取某些东西时,我都需要定期使用它来查找该 ID,在这种情况下,它经常出现。不管怎样,谢谢你的回答。如果您有更多建议,我将不胜感激。
      【解决方案4】:

      我通常只是在 ApplicationData.LocalSettings 中放置一个 Guido 并将其用作标识符。

      如果我想“全局”识别用户,我将其放入 RoamingSettings(需要特别注意同步)。

      是的,当用户重新安装应用程序时,这些设备会作为“新”设备出现,但这对我来说通常没有区别,它尽可能尊重用户的隐私。

      【讨论】:

      • 感谢您的评论,我会记住的。
      猜你喜欢
      • 2014-06-12
      • 2015-02-20
      • 2015-11-15
      • 1970-01-01
      • 2023-04-03
      • 2012-12-08
      • 2014-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多