C# Windows Phone 8.1 Silverlight唯一设备Id

C# Windows Phone 8.1 Silverlight唯一设备Id,c#,silverlight,windows-phone-8.1,C#,Silverlight,Windows Phone 8.1,我想知道是否有办法为Windows phone 8.1 Silverlight应用程序找到唯一的设备ID。我试着用 Windows.Phone.System.Analytics.HostInformation.PublisherHostId 我在这个主题的一个类似问题上发现了这个错误: 我转到Package.appxmanifest文件,在capabilities部分中找不到这个选项 我的问题是:有没有一种方法可以从应用程序中获取字符串形式的唯一id,这样我就可以在我的在线数据库中使用该字符串

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

Windows.Phone.System.Analytics.HostInformation.PublisherHostId

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

我转到Package.appxmanifest文件,在capabilities部分中找不到这个选项

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

您可以使用


此Id可以随硬件更改而更改。查看更多信息以及如何容忍这些更改。

似乎有一个,至少根据文档,它是“表示设备标识的字符串”

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

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

如果我想“全局”识别用户,我会将其放入漫游设置中(特别注意同步)


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

这是我尝试的第一件事,但HardwareToken仅在RT应用程序上可用,正如我所写,我需要Silverlight应用程序的一些东西。它对我来说不是很有用,因为每当用户需要数据库中的东西时,我都需要定期使用它来查找Id,在这种情况下,它通常是。无论如何,谢谢你的回答。如果你有更多的建议,我将不胜感激。谢谢你的评论,我会记住的。
HardwareToken packageSpecificToken;
packageSpecificToken = Windows.System.Profile.HardwareIdentification.GetPackageSpecificToken(null);
IBuffer buffer = packageSpecificToken.Id;
string id = CryptographicBuffer.EncodeToHexString(buffer);