从UWP app读取设备序列号和/或IMEI

时间:2015-12-28 20:30:32

标签: c# uwp

我正在开发一个应用程序,它将为将用于加密各种配置数据的设备获取X.509证书。理想情况下,此证书将包含可与采购记录相关联的信息。有没有办法从通用Windows应用程序读取设备序列号或IMEI?

2 个答案:

答案 0 :(得分:5)

对于一般的UWP,要获得系统唯一ID(不是IMEI),您可能需要查看这些类:

Windows.System.Profile.SystemIdentification

Windows.System.Profile.HardwareIdentification

例如:您可以使用以下方式查询唯一的设备ID:

var buffer = SystemIdentification.GetSystemIdForPublisher();

根据msdn发表以下评论:

  

该ID具有以下特征:

     
      
  • 每个系统都是独一无二的
  •   
  • 可以离线创建
  •   
  • 坚持重启,操作系统升级/重新安装等等
  •   
  • 坚持硬件修改
  •   
  • 在OneCore中可用
  •   
  • 出厂时可用于许可目的
  •   

https://msdn.microsoft.com/en-us/library/windows/apps/windows.system.profile.systemidentification.getsystemidforpublisher.aspx

请注意,返回类型是IBuffer并生成一些原始(非字符串式可读)字节,因此您可能需要对其进行序列化。

更多信息

https://msdn.microsoft.com/en-us/library/windows/apps/windows.system.profile.systemidentification.aspx

https://msdn.microsoft.com/en-us/library/windows/apps/windows.system.profile.hardwareidentification.aspx

答案 1 :(得分:1)

使用电话号码信息无法获取另一部手机的 IMEI ,但您可以获得设备唯一ID

using Microsoft.Phone.Info;

object uniqueId;
var hexString = string.Empty;
if (DeviceExtendedProperties.TryGetValue("DeviceUniqueId", out uniqueId))
     hexString = BitConverter.ToString((byte[])uniqueId).Replace("-", string.Empty);
        MessageBox.Show("myDeviceID:" + hexString);

Reference