Android Device Driver Xamarin Visual Studio

電腦無法正確的驅動 Android 手機該怎麼辦?

James Tsai 2017/03/31 15:00:32
5410

主題

電腦無法正確的驅動Android 機該怎麼辦?

文章簡介

大部分的 Android 手機接上電腦後大部分都可以正常的驅動成功 (雖然 Windows 10 在這方面表現已經很好),但可能某些白牌(貼牌)手機,就會遇上無法正常驅動的現象,如果 Android 手機沒有在電腦上正常的驅動成功,那 ADB 也無法讀取,更別說要讓 Xamarin.Android 的專案部屬到手機上,本篇文章提供曾經遭遇過的經驗之談,在以後若是遇到類似的問題時,可以有一些處理的方向。

作者

James Tsai

版本/產出日期

V1.0/2017.3.29



1. 前言


HTC、Samsung、LG…等這些大廠所出的Android手機,基本上都會有作專屬的驅動程式,就算Windows無法自動搜尋到合適的驅動程式,也只要到各大廠的官網上去找找,應該都可以找到適合的驅動程式。但麻煩的是一些白牌手機(貼牌手機),這些廠商不會負責驅動程式的,所以這些手機就沒辦法正確的被電腦讀取,更別說Google的ADB能夠識別了。而在Google的ADB都不能識別的情況下,怎麼會去期待能從Visual Studio直接部屬Xamarin.Android程式到手機上呢?所以根本之要是要解決驅動的問題,但每支白牌手機的狀況有可能多少有點相異,很多時候只能見招拆招,本篇文章是根據遭遇的經驗整理出來的作法,不一定適用所有的情境。


2. 環境準備


準備一支Android的白牌手機,在本文當中是貼牌台灣大哥大但實際上是ZTE (中興通訊)所出的 Amazing A5S 手機(ZTE的官網也未提供驅動下載),接上電腦後可能會看到裝置管理員看到下列的畫面。



這台Amazing A5S手機在Windows 8.1 & 10似乎接上電腦時都已經能正確辨識,並且自動安裝好驅動程式。上述畫面可能出現在Windows 7/8中,而若很剛好Windows 8.1/10的系統也會無法正確辨識,那也請參考看看本文所介紹的方式來設定。


3. 本文


前置準備


Android Google 公版USB Driver下載:

由於本篇文章會透過GoogleAndroid 公版USB Driver,修改為符合該 Amazing A5SDriver請先打開Android SDK Manager 確認 Google USB Driver是否已經有下載如下圖:



下載好後可以到虛線框中的SDK Path資料夾底下的 extras\google\usb_driver 看到相關檔案。




若使用自己修改的Driver來安裝裝置,會因為沒有數位簽章的簽署,而導致在Windows 8/8.1/10上無法安裝(為了安全),所以可以先到Windows的設定當中,透過進階啟動的調整,將要求驅動程式強制簽章的功能關閉(以下用Windows 10作為設定調整的舉例)



重新開機後會進到類似以下的畫面,選擇疑難排解”->”進階選項->啟動設定 ->重新啟動









再次重新開機後,會看到下列畫面,請用鍵盤輸入7



接著進入Windows系統後,就可以安裝自己變更的Driver。完成後,再重新開機後這個設定就失效了,不用擔心


修改Google Android公版 USB Driver


建議將之前透過Android SDK Manager下載好的公版USB Driver把整個 usb_driver資料夾複製出來一份,然後在這個usb_driver當中找到android_winusb.inf這個檔案並打開,找到[Manufacturer]的部分(紅色實線框),將後面的Google改成ZTE(紅色虛線框)




接著把後續的[Google.NTx86]以及[Google.NTamd64]中所寫的設備通通刪除,並且將此兩分類改成[ZTE.NTx86]以及[ZTE.NTamd64]:





接著在修改好的分類下加入自己裝置的相關描述資料



虛線框的數據請從裝置管理員當中點選該裝置右鍵選單的內容來查詢



切到詳細資料分頁後,在屬性的下拉選單選到硬體識別碼。正常來說,最後有MI結尾的值,就會是一種 CompositeAdbInterface,而所看到的值就會是我們填入的資料,若有兩個可選擇請自行測試。




回到android_winusb.inf這個檔案,繼續找到[Strings]的分類,將下面的ProviderName修改成自己想要顯示的名稱




接著就在回到裝置管理員,來將未正確驅動的裝置來更新驅動程式軟體




選擇瀏覽電腦上的驅動程式軟體




選擇讓我從電腦上的裝置驅動程式清單中挑選




選擇從磁片安裝




點選瀏覽,選擇剛剛我們改好的那個usb_driver的路徑,接著按確定



找到後選擇該驅動程式後,按下一步




安裝過程中,會有Windows 安全性提示,請選擇仍然安裝此驅動程式軟體



完成後點選關閉




回應所有的視窗後,回到裝置管理員,應該會看到如下圖的結果:



若有遇到要求重新開機的話,請重新開機。


測試結果


完成以上動作後,請先打開Android手機上的開發人員選項(通常在設定->關於手機->版本號碼 上快速的連續點選數下,即可打開。)並且確認開發人員選項中的USB偵錯是有勾選的。




接著透過Visual Studio找到工具”->”Android”->”Android Adb 命令提示字元來開啟adb作一些查詢




在命令提示字元當中鍵入adb devices



如果發現裝置狀態顯示unauthorized的話(虛線框),請拔掉連結裝置的USB線,再次重插。並且注意與確認裝置上出現如下畫面時,要立刻按確定。出現這個畫面代表電腦的Adb已經可以跟這台Android手機溝通,而Android手機要確認




再重新回到命令提示字元當中鍵入adb devices一次,就會看到顯示該裝置授權成功,可以開始透過adb佈署程式了。




開啟一個Xamarin.Android的專案,就可以看到Visual Studio可以直接佈署程式到該Andorid手機上




4. 參考來源


自己寫Android手機驅動程式
http://readandplay.pixnet.net/blog/post/183750660

James Tsai