我想與usb設備進行通信,使用acer iconia a500升級到android 3.2(內核2.6.36.3+,沒有紮根,我只是使用常規更新功能)。 簡而言之,發生的事情是,在我得到UsbManager後,getDeviceList返回一個空映射。同樣的情況,與從谷歌adbtest樣本:usb主機模式與iconia a500和android 3.2:沒有設備
mManager = (UsbManager)getSystemService(Context.USB_SERVICE);
// check for existing devices
for (UsbDevice device : mManager.getDeviceList().values()) {
// I get nothing here, the values() list is empty
我試過幾個設備(各種USB固態硬盤,一個硬盤驅動器,鼠標,Garmin的手錶,等等)。沒有。某些設備(磁盤,鼠標)確實可以被操作系統識別(它們的工作原理:我看到文件系統,鼠標工作正常等),但是它們並沒有在API級別上得到體現。
谷歌搜索,有人說,鼠標和鍵盤不枚舉,但磁盤做,但他們使用3.1,而我使用3.2。我也沒有拿到磁盤,或者其他插入的東西。
上面的代碼應該枚舉所有設備。無論如何,我還嘗試了谷歌示例中記錄的intent + xml文件方法。依然沒有。
清單似乎沒問題,正如我所說的,直接從sdk獲得的adbtest示例顯示了同樣的問題。
鑑於API的缺乏,我不知道接下來要做什麼。有沒有人成功地使用Android 3.2的iconia a500上的主機模式?
編輯:我的意思是「使用」在API級別。正如我所說的,「標準」設備在操作系統級別得到了認可,並且可以工作,但通過API無法看到。最後,我需要在主機模式下與非標準設備進行通信,所以我真的需要通過API獲取它。
編輯2:我不打算生根我的設備,因爲我的應用程序(如果我曾經設法寫它:-)將是無用的,如果需要生根。
謝謝!
- VIC
我用3.2版的Iconia使用了鍵盤,鼠標和外置NTFS硬盤。 –
是的,正如我所說的,我也是。他們自己開發,但不能在API級別進行枚舉,因此雖然操作系統可以看到它們,但我不能(因此我無法與非標準設備進行通信)。我會澄清我的問題,謝謝! – vic
您可以聯繫「驅動器安裝」的開發人員,聽聽他是如何工作的。該應用程序在這裏:https://market.android.com/details?id=au.dach.drivemount –