自android3.1以后android增加了操作USB设备的API。 官网地址:http://developer.android.com/guide/topics/connectivity/usb/host.html

网上也有很多这方面的文章,不过多数是介绍如何得到设备和获取权限的,很少有介绍如何读写数据的。

最近也研究了在android下如何读写USB设备,和大家分享一下。

关于如何监听设备插拔以及获取设备权限我就不说了,大家可以在网上搜一下有很多这方面的文章,我这里就说一下如何读写数据。

    UsbInterface usbInterface = usbDevice.getInterface(0);
    //USBEndpoint为读写数据所需的节点
    UsbEndpoint inEndpoint = usbInterface.getEndpoint(0);  //读数据节点
    UsbEndpoint outEndpoint = usbInterface.getEndpoint(1); //写数据节点
    UsbDeviceConnection connection = usbManager.openDevice(usbDevice);
    connection.claimInterface(usbInterface, true);
    //发送数据
    byte[] byte2 = new byte[64];
    int out = connection.bulkTransfer(outEndpoint, cmd, cmd.length, 3000);
    //读取数据1   两种方法读取数据
    int ret = connection.bulkTransfer(inEndpoint, byte2, byte2.length, 3000);
    Log.e("ret", "ret:"+ret);
    for(Byte byte1 : byte2){
    System.err.println(byte1);
    }
    //读取数据2
    /*int outMax = outEndpoint.getMaxPacketSize();
    int inMax = inEndpoint.getMaxPacketSize();
    ByteBuffer byteBuffer = ByteBuffer.allocate(inMax);
    UsbRequest usbRequest = new UsbRequest();
    usbRequest.initialize(connection, inEndpoint);
    usbRequest.queue(byteBuffer, inMax);
    if(connection.requestWait() == usbRequest){
    byte[] retData = byteBuffer.array();
    for(Byte byte1 : retData){
    System.err.println(byte1);
    }
    }*/

首先得到可以操作USB设备的节点Endpoint,0为读数据节点,1未写数据节点。

然后使用connection.bulkTransfer(endpoint, buffer, length, timeout) 发送数据。

我这里读数据的时候有两种方法,读数据1和读数据2

注意:写数据时传入的是写数据节点OutEndpoint,读数据时传入的是读数据节点InEndpoint。

代码下载:http://download.csdn.net/detail/centralperk/5743323

android usb host 读写USB设备的更多相关文章

  1. Android USB Host 与 Hid 设备通信bulkTransfer()返回-1问题的原因

    近期一直在做Android USB Host 与USB Hid设备(STM32FXXX)的通信,遇到了很多问题.项目源码以及所遇到的其他问题可以见本博客其他相关文章,这里重点讲一下bulkTransf ...

  2. USB HOST与 USB OTG的区别及工作原理

    在SmartQ 7上面,同时存在USB HOST与 USB OTG两个接口,我想问一下,这两个接口有什么区别么?我怎么认为HOST属于是多余呢? 麻烦高手解答,感激不尽!!! 转自USB HOST与 ...

  3. usb host和usb device

    S3C2440的数据手册将USB功能分为两章--usb host和usb device.具体什么意思呢? usb host: 微处理器作为usb主设备,可以挂接U盘之类的从属设备. usb devic ...

  4. Android USB Host与HID通讯 (一)

    去年9月份来到现在的公司,接到新公司的第一个项目就是Android USB Host与HID通讯,当时也什么都不懂,就拿着google的api 开发指南 (http://developer.andro ...

  5. PIC32MZ 通过USB在线升级 -- USB CDC bootloader

    了解bootloader 的实现,请加QQ: 1273623966 (验证填 bootloader):欢迎咨询或定制bootloader:我的博客主页www.cnblogs.com/geekygeek ...

  6. Android应用程序无法读写USB设备的解决方法

    假设android系统中的API或者apk无法读写usb设备.可能是没有加入读写usb的权限,须要依照例如以下方法进行设置: 1. 在android.hardware.usb.host.xml文件里加 ...

  7. android usb Host模式下与usb Hid 设备的通信

    做android 与USB HID设备的通信有段时间了,总结一下遇到的问题和解决方法: 1,第一次遇到的问题:android 版本低不支持usb hid, 被要求做相关项目的时候,就从mUsbMana ...

  8. 翻译Android USB HOST API

    翻译Android USB HOST API 源代码地址:http://developer.android.com/guide/topics/connectivity/usb/host.html 译者 ...

  9. 『翻译』Android USB Host

    USB Host When your Android-powered device is in USB host mode, it acts as the USB host, powers the b ...

随机推荐

  1. Delphi推出Delphi XE4支持IOS开发

    Delphi 新推出 Delphi XE4 ,这是一个支持 iOS 应用开发的新版本.Delphi XE4 带来 Embarcadero 全新的 ARM 编译器 下载地址

  2. GridView不換行

    在开发中用到了需要ScrollView嵌套GridView的情况,由于这两款控件都自带滚动条,当他们碰到一起的时候便会出问题,即GridView会显示不全. 解决办法,可以把ScrollVIew给删除 ...

  3. JavaScript高级程序设计(九):基本概念----语句的特殊点

    一.Label语句.break/continue语句和for循环语句的结合使用: 1.Label语句可以在代码中添加标签,以便将来使用.语法: label:statment   eg: start:f ...

  4. iOS 键盘回收实现步骤

    第一步:遵守协议 (UITextFieldDelegate) @interface AppDelegate : UIResponder <UIApplicationDelegate,UIText ...

  5. VS2010 VS2012 如何连接Oracle 11g数据库

    oracle是开发者常用的数据库,在做.NET开发是,由于Vs自带的驱动只能连接oracle 10g及以下版本,那么如何连接oracle 11g呢? 工具/原料   事先安装VS2010或者VS201 ...

  6. props验证

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 19_高级映射:一对多查询(使用resultMap)

    [需求] 查询订单以及订单明细的信息. 确定主查询表:订单表orders 确定关联查询表:订单明细表 orderdetail 在一对一查询的基础上添加订单明细表关联即可. [分析] 使用resultM ...

  8. HDU 1058 Humble Number

    Humble Number Problem Description A number whose only prime factors are 2,3,5 or 7 is called a humbl ...

  9. [DP] LGTB 玩THD (复杂状态DP)

    LGTB 玩THD LGTB 最近在玩一个类似DOTA 的游戏名叫THD有一天他在守一座塔,对面的N 个小兵排成一列从近到远站在塔前面每个小兵有一定的血量hi,杀死后有一定的金钱gi每一秒,他都可以攻 ...

  10. 清橙OJ 1082 查找第K小元素 -- 快速排序

    题目地址:http://oj.tsinsen.com/A1082 问题描述 给定一个大小为n的数组s和一个整数K,请找出数组中的第K小元素. 这是一个补充程序的试题,你需要完成一个函数: int fi ...