第三方库LibUSB在Android系统上的简单使用

背景:公司开发一个USB设备的固件升级工具。

1、为毛使用LibUSB库?因为使用Android Host API读取不到我想要的USB设备。有类似的兄弟姐妹们请看自定义HID设备与Android设备通信,看了这篇文章之后,是不是觉得可以不用了?是的,你们说得很对。可能会存在这个小概率事件——没有修改描述符的自定义设备已经发货到客户终端了,客户使用起来不爽,设备商于是更新了固件,需要在Android系统下升级。这种小概率事件被我遇上了。既然遇上了就要解决。于是于是采用第三方库Libusb。

2、使用LibUSB库又会遇到什么问题呢?使用该库存在一个权限问题,官方文档有三种解决办法。https://github.com/libusb/libusb/blob/master/android/README,不过在开机启动项中修改权限,只能修改一次,如果设备存在几种状态,即:对应不同的PID之间切换。那么只能使用JAVA调用su命令的方法。(这些都针对我要写工具的设备使用)

3、写JNI。主要问题就是层级之间数据的转换问题,写过JNI的基本都会,这就不用多说了。补充个LibUSB的API:http://libusb.sourceforge.net/api-1.0/libusb_api.html   如果看API也没啥子头绪就看实例代码吧,前面那个github连接中example目录下多个简单实例

4、弄清与设备之间的控制命令通道与数据通道,以及设备切换,命令切换之间的延时关系。开发该APP就不再话下了。

5、END!

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值