Android USB打印开发

本文介绍了Android系统中进行USB打印开发的过程,包括注册USB广播、申请设备权限、连接设备、分配端点以及发送数据等关键步骤。通过官方文档学习并结合实际操作,详细解析了与硬件设备的USB通讯业务逻辑。
摘要由CSDN通过智能技术生成

USB打印开发

最近对接了一些硬件设备,其中需要通过USB通讯去打印,通过学习自己实现了一下
先看看google官方文档
https://developer.android.google.cn/guide/topics/connectivity/usb/host.html
USB打印中的常量注解请查阅一下博客
https://www.jianshu.com/p/09571a236feb
USB通讯主要看的还是业务逻辑
1.注册USB广播,获取到设备上连接的所有USB设备,采用集合的思想管理
HashMap<String, UsbDevice> deviceList = usbManager.getDeviceList();
2.如果设备有权限就直接连接,如果没有需要主动申请权限
usbManager.requestPermission(myUsbDevice, permissionIntent);
3.分配端点,获取到UsbEndpoint对象
UsbEndpoint ep = usbInterface.getEndpoint(i);
4.连接设备,连接是需要判断社保是否具备权限
UsbDeviceConnection conn = usbManager.openDevice(myUsbDevice);
if(null==conn){
Toast.makeText(this,“不能连接到设备”,Toast.LENGTH_SHORT).show();
return;
}
//打开设备
if(conn.claimInterface(usbInterface,true)){
myDeviceConnection = conn;
// 到此你的android设备已经连上zigbee设备
System.out.println(“result–>open设备成功!”);
} else {
System.out.println(“result–>无法打开连接通道。”);
Toast.makeText(this,“无法打开连接通道。”,Toast.LENGTH_SHORT).show();
conn.close();
}

5.发送数据

public void sendMessageToPoint(byte[] buffer) {
        int i = myDeviceConnection.bulkTransfer(epBulkOut, buffer, buffer.length, 0);
        System.out.println("result-->:::"+i);
        if( i>= 0){
            //0 或者正数表示成功
            System.out.println("发送成功");
        } else {
            System.out.println("发送失败");
        }
    }

话不多说最后上写代码,这个资源文件中只是几个button按钮,这里不贴出来了

package com.example.mydemo;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.hardware.usb.UsbConstants;
import android.hardware.usb.UsbDevice;
import android.hardware.usb.UsbDeviceConnection;
import android.hardware.usb.UsbEndpoint;
import android.hardware.usb.UsbInterface;
import android.hardware.usb.UsbManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import java.util.HashMap;
import java.util.Iterator;
 public 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值