我想知道是否有办法为Windows Phone 8.1 Silverlight应用程序查找唯一的设备ID。我试着用
Windows.Phone.System.Analytics.HostInformation.PublisherHostId
我在这个主题的一个simillar问题上找到了,但是我收到了这个错误:
http://pokit.org/get/?a9872a6ecf1714d138a71d835ccb8e27.jpg
我去了Package.appxmanifest文件,但在Capabillities部分找不到这个选项。
我的问题是:有没有办法从应用程序中获取字符串形式的唯一ID,以便我可以在我的在线数据库中使用该字符串来了解请求来自哪个设备,因为我启用了多个配置文件在我的相同设备上的应用程序?
答案 0 :(得分:2)
我找到了问题的答案。事实证明我可以使用Windows.Phone.System.Analytics.HostInformation.PublisherHostId方法,但我必须检查WMAppManifest.xml文件中的ID_CAP_IDENTITY_DEVICE功能。该文件可以在Windows Phone 8.1 Silverlight应用程序的属性下找到。
答案 1 :(得分:0)
您可以使用GetPackageSpecificToken。
HardwareToken packageSpecificToken;
packageSpecificToken = Windows.System.Profile.HardwareIdentification.GetPackageSpecificToken(null);
IBuffer buffer = packageSpecificToken.Id;
string id = CryptographicBuffer.EncodeToHexString(buffer);
此ID可随硬件更改而更改。查看here以获取更多信息以及如何容忍更改。
答案 2 :(得分:0)
似乎有DeviceInformation class,根据文档至少有id property,它是“表示设备身份的字符串。”。
答案 3 :(得分:0)
我通常只将Guido放在 ApplicationData.LocalSettings 中,并将其用作标识符。
如果我想要“全局”识别用户,我将其置于 RoamingSettings 中(特别注意同步)。
是的,当用户重新安装应用程序时,这些设备会成为“新”设备,但这通常对我没有影响,并且尽可能尊重用户隐私。