第三方庫LibUSB在Android系統上的簡單使用
阿新 • • 發佈:2019-01-07
背景:公司開發一個USB裝置的韌體升級工具。
1、為毛使用LibUSB庫?因為使用Android Host API讀取不到我想要的USB裝置。有類似的兄弟姐妹們請看自定義HID裝置與Android裝置通訊,看了這篇文章之後,是不是覺得可以不用了?是的,你們說得很對。可能會存在這個小概率事件——沒有修改描述符的自定義裝置已經發貨到客戶終端了,客戶使用起來不爽,裝置商於是更新了韌體,需要在Android系統下升級。這種小概率事件被我遇上了。既然遇上了就要解決。於是於是採用第三方庫Libusb。
2、使用LibUSB庫又會遇到什麼問題呢?使用該庫存在一個許可權問題,官方文件有三種解決辦法。https://github.com/libusb/libusb/blob/master/android/README
3、寫JNI。主要問題就是層級之間資料的轉換問題,寫過JNI的基本都會,這就不用多說了。補充個LibUSB的API:http://libusb.sourceforge.net/api-1.0/libusb_api.html 如果看API也沒啥子頭緒就看例項程式碼吧,前面那個github連線中example目錄下多個簡單例項
4、弄清與裝置之間的控制命令通道與資料通道,以及裝置切換,命令切換之間的延時關係。開發該APP就不再話下了。
5、END!