安卓使用USB连接打印机

大家都明白,USB连接硬件的话,基本上都需要安装驱动。

没有驱动的话,你的PC或者安卓是无法识别这个设备的。

本文主要使用 安卓 USB Host来实现打印机的连接。

关于 安卓USB Host不清楚的,可以去百度。

我们仍然使用上一篇提到的 芯华 xp-588iiH来打印。

第一,使用 UsbManager 来找到连接的所有USB设备

// 取连接到设备上的USB设备集合
        UsbManager usbManager = (UsbManager) getSystemService(Context.USB_SERVICE);
        HashMap<String, UsbDevice> map = usbManager.getDeviceList();

第二,根据 VendorID 和 ProductID 来过滤我们想要连接的设备

UsbDevice usbDevice = null;
        for(UsbDevice device : map.values()){
            // 芯烨  XP-58IIH 的 VendorID = 1155 , ProductID = 1803
            int VendorID = device.getVendorId();
            int ProductID = device.getProductId();
            if(VendorID == 1155 && ProductID == 1803){ usbDevice = device; break; }
        }

第三,我们需要设置权限,去操作这个设备,稍后接受

if(!usbManager.hasPermission(usbDevice)){
            Toast.makeText(this, "没有权限操作USB设备!", Toast.LENGTH_SHORT).show();
            return;
        }

第四,需找接口和写入数据点

UsbInterface usbInterface = usbDevice.getInterface(0);

UsbEndpoint outEndpoint = usbInterface.getEndpoint(1);

这一点很重要,设备不同,接口和数据点不同,这个可以去遍历,代码包中有。

第五,打开并连接设备

UsbDeviceConnection connection = usbManager.openDevice(usbDevice);
        connection.claimInterface(usbInterface, true);

第六,打印数据

data += "\n\n\n\n\n\n";
        byte[] printData = null;
        try { printData = data.getBytes("gbk"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); }
        int out = connection.bulkTransfer(outEndpoint, printData, printData.length, 5000);

最后不要忘记关闭连接

connection.close();

最有的问题,就是权限,有两种方式,一种是静态,一种动态。不懂去百度。

此处,我们使用静态方式,需要在AndroidManifest文件中添加如下:

<uses-feature android:name="android.hardware.usb.host" android:required="true"/>

<meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" android:resource="@xml/print_device_filter" />

<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />

添加的位置,请查看代码包,请注意@xml/print_device_filter文件,如下:

<resources>
    <usb-device vendor-id="1155" product-id="1803" />
    <usb-device vendor-id="1155" product-id="22339" />    
</resources>

没错,记忆好的人,就会发现,就是记载了 芯烨  XP-58IIH 的 VendorID 和ProductID

当USB连接到平板上面的时候,就会出现授权提示:

勾选默认,点击确定即可。

基本讲解完毕,代码包下载:http://download.csdn.net/detail/konkon2012/9383696

测试结果如下:

安卓蓝牙USB连接热敏打印机二相关推荐

  1. 安卓蓝牙USB连接热敏打印机一

    安卓蓝牙连接打印机 首先,你的热敏打印机必须支持蓝牙,我选择的是芯华xp-58iih这款.此款支持蓝牙连接和USB连接. 由于我不想每次打印的时候去搜索蓝牙设备,所以我提前使用平板配备上了这款蓝牙打印 ...

  2. 安卓使用usb连接外设

    源码地址 https://gitee.com/xzw421771880/android_usb Android_USB 介绍 安卓通过usb连接硬件设备 软件架构 Android Studio 4.1 ...

  3. android usb调试无法连接电脑,安卓手机USB连接不上电脑,该怎么处理,手机里开发者选项已经勾选USB调试。...

    [XP解决方案] [问题描述]: U盘插入USB接口后无任何反应,但是设备管理器内可以看到设备 [原因分析]: Usb驱动异常. [简易步骤]: [我的电脑]-右键[管理]-[设备管理器]-[通用串行 ...

  4. android 无sdk usb/蓝牙 连接热敏打印机外卖小票打印

    这是部分代码 获取代码 ->发送标题作为验证信息到该邮箱 itperson@foxmail.com ​​​​​​ /** js spi 蓝牙连接 接收 mac address :返回mac ad ...

  5. 手机usb连接电脑上网攻略大全【安卓,塞班,智能机,苹果】

    手机usb连接电脑上网攻略大全[安卓,塞班,智能机,苹果] 手机连接电脑上网或者电脑用手机上网已经不是新鲜事了. 相对于今天的3g或者4g网络,网速已经达到或者超过了电脑固线的速度. 那么,我们在笔记 ...

  6. mac电脑usb连接android手机,Android安卓设备连接Mac的方法

    平时大家用到最多的就是安卓手机和苹果电脑互连,由于安卓系统应用广泛,很多平板电脑还有电视都在用安卓的系统,下面是我们整理的安卓连接MAC电脑的方法. 一.使用第三方的链接软件 现在很多第三方的应用软件 ...

  7. uni-app蓝牙设备连接以及设备的传输,CRC16,ios蓝牙和安卓蓝牙获取数据不一致处理方案

    前言: 因为需要开发与蓝牙设备控制相关,但是这不是常用的蓝牙打印,并且是由原生安卓已经做好的,但是需要移植到多平台(小程序 等)都可以使用所以就要移植成 uni-app ,所以这个是按照uni-app ...

  8. 关于安卓19的板子通过usb连接打印机打印问题 (非小票打印机器)

    很多打印机有提供windows,linux的打印驱动,但是安卓的驱动几乎没有厂家提供,这就导致很多想通过安卓平板控制打印机连接打印的用户无法实现,而市面上面大多数打印软件也是通过蓝牙或者网络来进行连接 ...

  9. android不支持USB怎么办,安卓手机通过USB连接不上电脑怎么办

    安卓手机通过USB连接不上电脑怎么办 当我们将手机和电脑用数据线连接起来,但是电脑上面并没有连接成功,这是应该怎么办呢? 一.方法/步骤 1.点开你的手机,找到[设置]选项,点开设置. 2.在设置的最 ...

  10. java利用安卓蓝牙上网_Android-蓝牙的网络共享与连接分析

    一.概述 本次分析是基于android7.0的源码,主要是介绍如何通过反射来打开蓝牙的网络共享以及互联网的连接. 二.蓝牙的网络共享 1. 网络共享部分源码分析 关于packages/apps/Set ...

最新文章

  1. Unity三维游戏开发C#编程大师班 Masterclass In C# Programing Unity 3D Game Development FPS
  2. JSBridge 技术原理分析
  3. shell中获取时间
  4. MySQL 主键冲突,无法插入数据
  5. LevelDB 源码剖析(九)DBImpl模块:Open、Get、Put、Delete、Write
  6. jprofiler安装与使用
  7. phpcmsV9视频模块开发——盛大游戏通行证注册与密码找回
  8. SUV 个人收藏汽车
  9. 特朗普“能源独立”政策效果存疑
  10. java后台截图_Java+Selenium实现后台截图网页,可运行在树莓派上
  11. Linux vi命令修改文件内容笔记
  12. quilt 工具增加 patch 方法
  13. [Github] You‘ve successfully authenticated, but GitHub does not provide shell access.
  14. 设计师必备的三个导航网站
  15. Tracup:集成Bug追踪的轻量级项目管理平台
  16. Omi官方插件系列 - omi-transform介绍
  17. Coursera的视频一直加载无法播放问题的完整解决【win10】
  18. 【12月19日】传媒行业的股票排名
  19. 生成百度网盘文件目录_艾孜尔江撰稿
  20. Python技能树的测评和CSDN Markdown编辑器的测评

热门文章

  1. windows上vscode 安装Fortran-language-server
  2. 单片机C语言12864绘画,单片机驱动lcd12864液晶绘图功能程序+仿真
  3. stm32 控制 lcd12864
  4. web应用程序安全性测试_立即提高Web应用安全性的6种方法
  5. Shell脚本学习指南读书笔记(一)
  6. Windows7安装java
  7. deep|Bayes(4)
  8. 百度开源的 71 个项目,你用过几个 ?
  9. 相亲交友App,婚恋交友App,开源源码可搭建H5公众号小程序App,支持个性化定制
  10. css:电子数字显示