根据USB设备硬件信息获取Android设备型号(2)


 //获取设备状态
     CM_Get_Device_ID(devInfoData.DevInst, buf, sizeof(buf),0); 
  QString str = QString::fromStdWString(buf);
 
  if (str.left(3).toUpper() == "USB")
  {
   qDebug()<<"CM_GET_DEVICE_ID_1 = "<<str;
           m_DeviceVectorID_1.append(QString::fromStdWString(buf));
  }

CM_Get_Parent(&devInstParent,devInfoData.DevInst, 0); 
  CM_Get_Device_ID(devInstParent, buf, sizeof(buf),0); 
  str = QString::fromStdWString(buf);

//根据以下方法取得设备SDN id
 HANDLE hDrive = CreateFile(pDevDetail->DevicePath, 0, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);

同时可根据系统中移动分区各个盘符取得对应的磁盘以及磁盘SDN id.

根据设备获取的和通过系统中获取的移动设备进行SDN匹配就能获取设备和系统中盘符的对应关系。

同时可以根据上面获取到的设备状态和设备接口细节信息去Android SQL数据中通过正则表达式进行序列号匹配获取是否是Android设备。

以及android设备的型号。 由于安卓设备型号复杂,种类繁多,所以目前只能通过数据库匹配的方式来进行是否是Android设备的判断。

如果新出的设备,需要随时更新数据库。 不知哪位大牛有更好的方法。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/b449967a1088e544017b1e5107fb9800.html