//获取设备状态
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设备的判断。
如果新出的设备,需要随时更新数据库。 不知哪位大牛有更好的方法。