前些日子,自己接手專門為android裝置開發的資料恢復軟體,第一次作為專案經理帶隊進行專案開發。
其中為了解決裝置和型號的對應關係,用於區分當前接入系統的裝置是usb裝置,並且是android裝置而不是通常的usb裝置或者其他的手機裝置。
故需要獲得裝置的硬體裝置序號,根據硬體資訊特徵碼來和android特徵碼資料庫進行匹配,來取得裝置的型號。
首先根據硬體的guid獲取usb類裝置集控制代碼
//usb裝置的guid
static const guid guid_devinte***ce_usb_device =
};//磁碟的guid
const guid* szdiskclassguid = &guid_devinte***ce_disk; //磁碟類
const guid* volumeguid_ = &guid_devinte***ce_volume; //捲類
//獲取usb類裝置集控制代碼
int cusbdeviceinfo::enumusbdeviceset()
//else//}
//獲取列舉的裝置資訊
sp_devinfo_data devinfodata = ;
bret = setupdienumdeviceinfo(hdevinfo,dwindex,&devinfodata);
if(!bret)
////獲取裝置介面資料集
sp_device_inte***ce_data devinte***cedata;
byte buffer[buffer_size];
dword requiredsize;
tchar buf[buffer_size];
devinst devinstparent;
zeromemory(&devinte***cedata, sizeof(devinte***cedata));
devinte***cedata.cbsize = sizeof(devinte***cedata);
if(!setupdienumdeviceinte***ces(hdevinfo,null,szdiskclassguid,dwindex,&devinte***cedata))
//獲取裝置介面細節資訊
zeromemory(&devinfodata, sizeof(devinfodata));
devinfodata.cbsize = sizeof(sp_devinfo_data);
psp_device_inte***ce_detail_data pdevdetail;
pdevdetail = (psp_device_inte***ce_detail_data)buffer;
pdevdetail->cbsize = sizeof(sp_device_inte***ce_detail_data);
bool ret = setupdigetdeviceinte***cedetail(hdevinfo, &devinte***cedata,
pdevdetail, buffer_size, &requiredsize, &devinfodata);
if(!ret)
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裝置的判斷。
如果新出的裝置,需要隨時更新資料庫。 不知哪位大牛有更好的方法。
檢測裝置是否iPhone X
1.通過獲取裝置的 device model 來判斷 每一台 ios 裝置都有對應的硬體編碼 識別符號,稱為 device model 或者叫 machine name 機型對應的device model iphone x iphone10,3 和 iphone10,6 iphone xs ipho...
Android許可權檢測
參考 經過多番嘗試和查詢資料發現原因 在targetsdkversion小於23 android m 的時候,contextcompat.checkselfpermission 和context.checkselfpermission方法都不能正常工作並且始終返0 permission grante...
晶圓缺陷檢測裝置 口罩外觀缺陷視覺檢測裝置
口罩是生活中常見的空氣過濾用品,其市場空間巨大。目前廣泛應用的自動口罩生產裝置可以完成口罩的自動化生產,但生產過程中難免會出現各種質量問題,如口罩表面存在毛髮 汙漬 異物,以及鼻樑條 口罩帶的缺失等問題。這些存在質量問題的口罩,一旦流入市場,將會對企業的聲譽產生較大的影響。目前在口罩外觀缺陷檢測方面...