識別Android手機並檢測驅動

來源:互聯網
上載者:User

這是一篇流水賬,只是講下識別Android手機的思路。也許不是最好的辦法,但是是可行的。

 

枚舉USB控制器,得到每個USB裝置的資訊,主要是擷取Vendor、Product和SerialNumber

其實也就是實現USBView的功能,可以參考USBView的源碼

http://download.csdn.net/detail/nightrainljh/3717068

這個資源的程式可能跑不起來,不過沒關係,只要看看源碼就好了

中的軟體是用的RW-Everything,可以查看本機硬體資訊,很方便
  

 
遍曆手機的描述符,找出ADB介面裝置,那麼如何確定介面是ADB呢?我這裡的辦法是檢查分類代碼,如果是0xFF 0x42 0x01,而且裝置有序號的話

則認為是Android裝置(我目前採用的判斷辦法,暫時沒識別錯誤的問題)

這個我之前就轉過一篇分類代碼含義文章,可以參考一下

http://blog.csdn.net/aqtata/article/details/8285253

 

整理一下思路,擷取USB裝置,得到VID和PID,有些VID沒有做過Android手機,可以過濾一道
然後找出ADB的介面描述(分類代碼為0xFF 0x42 0x01 且有序號),基本判定就是Android裝置了!

 

當然,要100%精確確定是不是Android裝置,最好的辦法是通過VID和PID去檢測。但由於PID是各個製造商自行定義的
所以我們是不可能有這個PID資料的,只能通過上面的笨辦法去檢測!

 

接著,就是檢查ADB驅動是否安裝。
通過ADB驅動檔案中得知,ADB裝置介面GUID是{F72FE0D4-CBCB-407d-8814-9ED673D0DD6B}
我們只需要通過SetupDiXXX系列API來枚舉裝置,檢查是否有ADB裝置即可

 

如果在USB裝置中篩選出了手機裝置,但是卻沒有找到ADB裝置,那麼基本可以確定本機沒有安裝ADB驅動

然後就是從"未知裝置"中找到ADB裝置即可。怎麼匹配呢?找它的"父系"!

 

 

可以看到,"父系"和VID、PID、SerialNumber和之前找到的USB裝置資訊相匹配!那麼就確定了它是ADB裝置!剩下的就是安裝合適的驅動程式了……

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.