Windows Phone 8.1 Silverlight 唯一设备 ID

Windows Phone 8.1 Silverlight Unique device Id

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

Windows.Phone.System.Analytics.HostInformation.PublisherHostId

我在这个主题的一个类似问题上发现了这个问题,但我得到了这个错误:

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

我转到 Package.appxmanifest 文件,但在“功能”部分找不到要检查的选项。

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

您可以改用 GetPackageSpecificToken .

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

这个 Id 会随着硬件的改变而改变。查看 here 了解更多信息以及如何容忍这些变化。

根据文档至少有一个DeviceInformation class, which has a id property,是"A string representing the identity of the device."。

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

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

如果我想识别用户 "globally",我将其放入 RoamingSettings(需要额外注意同步)。

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