简介
在Android实现USB连接有什么作用?USB连接有什么限制?USB连接实现的难度?
1.Android实现USB连接有什么作用?
在Android上实现USB连接的用处在于可以在搭载Android系统的手机或者开发板上控制设备。例如:Android控制USB摄像头、Android控制USB打印机、Android控制身份证读卡器......理论上只要支持USB连接的设备都可以用Android实现控制。当然这里的控制分为两种情况:
-
USB免驱设备。(驱动部分已在Android底层或Linux层实现)
-
USB指定驱动设备。(硬件厂家驱动、通用通讯协议
2.USB连接有什么限制?
对于USB设备连接来说就像客户端连接服务器,在网络连接中需要知道服务器的ip地址才能找到对应的服务器,同理在USB连接中也是需要知道对应USB设备的vendorId(设备厂商Id)和productId(设备产品Id)。在我开发过的USB的设备中发现这两个Id在同一厂商生产的相同系列的不同产品中,他们可能会重复。和网络连接不同的是,如果不知道这两个Id,也是可以连接设备,只是不知道连接的哪一个,这里的id主要是用于连接和过滤设备用的
3.USB连接实现的难度?
其实USB设备的连接比较简单,比较现在USB设备已经相当普及、不论是通过Android系统还是通过Linux系统你都可以很好的实现。可能对于平时没有在Android接触过USB通信的感觉难而已,等你看完本文后你会觉得真的很简单。而且这个是不需要root权限的,看完本文后你就可以用你Android手机实现控制一个外接摄像头,想想是不是很激动。
实现步骤
1.物理连接
如果你是在Android手机这样不支持USB连接的设备上实现,可以通过在type-c上用OTG扩展出USB母口(淘宝5元包邮),如果你实在Android开发板上实现USB连接,直连就可以,一般开发板都支持USB口。如果你想控制更多的USB设备可以通过USB扩展器实现。
2.权限配置
首先在AndroidManifest.xml中申明USB权限
<!-- 声明使用usb -->
<uses-feature
android:name="android.hardware.usb.host"
android:required="true" />
然后在你操作的Activity或service中添加meta-data
<!-- android