WP8.1功能中缺少ID_CAP_IDENTIY_DEVICE

Apo*_*rva 1 c# windows-phone-8 windows-phone-8.1 win-universal-app

为什么Wp8.1中缺少Capability ID_CAP_IDENTITY_DEVICE?由于这个原因,我无法获得与我在WP8中获得的设备ID相匹配的设备ID!

而这反过来又在App升级中引发了很多问题!

现在我正在使用,

HardwareToken token = HardwareIdentification.GetPackageSpecificToken(null);
IBuffer hardwareId = token.Id;
HashAlgorithmProvider hasher = HashAlgorithmProvider.OpenAlgorithm("MD5");
IBuffer hashed = hasher.HashData(hardwareId);
string DeviceId = CryptographicBuffer.EncodeToHexString(hashed);
return DeviceId ;
Run Code Online (Sandbox Code Playgroud)

以前我们用过,

DeviceExtendedProperties.TryGetValue("DeviceUniqueId", out uniqueId);
result = (byte[])uniqueId;
string id = Convert.ToBase64String(result).Replace("=", "").Replace("/", "").Replace("+", "");
return id + "";
Run Code Online (Sandbox Code Playgroud)

请建议一个解决方案,以便我们可以在两个平台上获得类似的ID!

所有帮助和建议表示赞赏.

Viv*_*ara 6

如果您正在开发Windows Phone 8.1 XAML应用程序,它将不支持ID_CAP_IDENTITY_DEVICE,因为它可以部署在任何设备上,即手机,平板电脑或台式机.因此,您可以使用HardwareIndentification类来获取设备ID

private string GetDeviceID()
        {
            HardwareToken token = HardwareIdentification.GetPackageSpecificToken(null);
            IBuffer hardwareId = token.Id;

            HashAlgorithmProvider hasher = HashAlgorithmProvider.OpenAlgorithm("MD5");
            IBuffer hashed = hasher.HashData(hardwareId);

            string hashedString = CryptographicBuffer.EncodeToHexString(hashed);
            return hashedString;
        }
Run Code Online (Sandbox Code Playgroud)

这可能会有所帮助.有关使用应用程序特定硬件ID(ASHWID)实施每设备应用程序逻辑的指南