Android裝置檢測

2021-06-18 23:26:58 字數 2174 閱讀 5471

前些日子,自己接手專門為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...

晶圓缺陷檢測裝置 口罩外觀缺陷視覺檢測裝置

口罩是生活中常見的空氣過濾用品,其市場空間巨大。目前廣泛應用的自動口罩生產裝置可以完成口罩的自動化生產,但生產過程中難免會出現各種質量問題,如口罩表面存在毛髮 汙漬 異物,以及鼻樑條 口罩帶的缺失等問題。這些存在質量問題的口罩,一旦流入市場,將會對企業的聲譽產生較大的影響。目前在口罩外觀缺陷檢測方面...