usbmanager

Android 小票打印USB

混江龙づ霸主 提交于 2020-12-12 19:43:34
第一步USB通信: Usb设备有两种,Host与Accessory 简单来说是主模式与从模式,主模式则android设备给外设供电,反之,外设给android设备充电,对于小票打印,使用的是Host模式 用到以下几个类: 1.UsbManager: 这个类用来获取USB设备-UsbDevice UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE); // 获取设备 HashMap<String, UsbDevice> deviceList = manager.getDeviceList(); UsbInterface & UsbEndpoint : 代表UsbDevice有哪些功能 UsbInterface intf = device.getInterface(0 ); // 官方文档上边是这样写的,直接获取第一个,但往往不一定只连接一个设备,就要求我们找到自己想要的那个,一般的做法是 int count = device.getInterfaceCount(); for ( int i = 0;i < count; i++ ) { UsbInterface intf = device.getInterface(i); // 之后我们会根据 intf的 getInterfaceClass

带你遨游USB世界

﹥>﹥吖頭↗ 提交于 2020-08-19 00:59:55
1、什么是USB USB的全称是Universal Serial Bus,通用串行总线。它的出现主要是为了简化个人计算机与外围设备的连接,增加易用性。USB支持热插拔,并且是即插即用的,另外,它还具有很强的可扩展性,传输速度也很快,这些特性使支持USB接口的电子设备更易用、更大众化。 本文将从USB协议、枚举流程、host和device驱动等各方面,全面介绍Linux USB模块的工作原理和代码流程,下面就请随我一起,遨游多姿多彩而又复杂严谨的USB世界吧~ 2、USB传输基础知识介绍 2.1、USB金字塔型拓扑结构 2.1.1、USB协议基础 塔顶为USB主控制器和根集线器(Root Hub),下面接USB集线器(Hub),集线器将一个USB口扩展为多个USB口,USB2.0规定集线器的层数最多为6层,理论上一个USB主控制器最多可接127个设备,因为协议规定USB设备具有一个7 bit的地址(取值范围为0~127,而地址0是保留给未初始化的设备使用的)。 2.1.2、NRZI编码 USB采用差分信号传输,使用的是如上图所示的NRZI编码方式:数据为0时,电平翻转;数据为1时,电平不翻转。如果出现6个连续的数据1,则插入一个数据0,强制电平翻转,以便时钟同步。上面的一条线表示的是原始数据序列,下面的一条线表示的是经过NRZI编码后的数据序列。 2.1.3、包(packet)格式