测试手机:华为p8

测试系统:android

-------------------------------------------

android的native层usbhost供java层android usb api调用。

使用native层的usb host需要libusbhost.so和usbhost.h两个文件。libusbhost.so和usbhost.h均可以在aos ndk里找到,usbhost.c在android源码目录下:/system/core/libusbhost/

1. 初始化

usbHostContext = usb_host_init();

2. 创建一个线程运行usb_host_run(),进行USB device的插入和拔出监听

while(1)

{

usb_host_run(usbHostContext, usb_device_added, usb_device_removed, NULL, client_dat);

printf("\n err:usb_host_run() return. \n\n");

pthread_exit("usb_run exit");

}

3. 实现设备插入和拔出回调

插入回调:static int usb_device_added(const char *devname, void* client_data)

拔出回调:static int usb_device_removed(const char *devname, void* client_data)

在插入回调里可以利用devname打开一个USB设备:

struct usb_device * usbdevice = usb_device_open(devname);

利用获取到的PID和VID判断是否是用户需要的USB device

int usb_vid = usb_device_get_vendor_id(usbdevice);

int usb_pid = usb_device_get_product_id(usbdevice);

在拔出回调中处理USB设备关闭及资源释放的工作。

4. 打开设备后挂接用到的usb 接口:

ret = usb_device_claim_interface(usbdevice, 0);

5. 进行数据传输:

length = usb_device_bulk_transfer(udevice, BULK_OUT, bulk_send_buf, 4, 100);

注:usbhost只提供了bulk和控制传输,但bulk传输函数也能使用中断端点。

android USB host编程相关推荐

  1. Android USB转串口编程

    安卓手机的对外通信接口就只有USB跟音频口,我们可采用其进行与外设进行通信.今天,我们来讲讲安卓手机利用USB接口与外设进行通信.此时,有两种情况. 第一:USB(手机)<--->USB( ...

  2. Android USB Host与HID通讯

    Android USB Host与HID通讯 (一) Android USB Host与HID通讯 (二) Android USB Host与HID通讯Demo android usb host 读写 ...

  3. Android USB Host与HID通讯(二)

    2019独角兽企业重金招聘Python工程师标准>>> 原文出处:http://han21912.lofter.com/post/c3919_51401d 接上一篇:Android ...

  4. 翻译Android USB HOST API

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

  5. android usb host hid,Android USB Host与HID通讯

    前端时间捣鼓一个HID的硬件, 需要和android通信, 网上搜索了一圈,收获不小. 其中代码之处有些地方需要注意的, 特此注明一下: /*** USB HOST 连接 HID *@authorIV ...

  6. Android USB Host开发之manager.getDeviceList()获取不到设备列表【转载】

    原文:https://www.2cto.com/kf/201305/211304.html 同样遇到这样的问题,我的Android设备是原道N12C,官方的4.0.3系统,遇到这个问题,后来找了半天找 ...

  7. Android USB Host开发之manager.getDeviceList()获取不到设备列表

    同样遇到这样的问题,我的Android设备是原道N12C,官方的4.0.3系统,遇到这个问题,后来找了半天找到的,现在汇总一下吧: 1.创建 android.hardware.usb.host.xml ...

  8. Android usb host

    当你的Android主机是处于USB主模式下,它充当USB主机,开启设备并列举出所有已连接的USB设备.这种模式在Android 3.1及以上的版本支持. API预览 在开始开发USB Host之前, ...

  9. android otg读写文件,Android USB Host在USB设备OTG中读/写文件

    我正在编写Android设备是主机的应用程序.用户将USB驱动器连接到Android设备,我的应用程序将在USB驱动器中写入一些文本文件.文本文件的路径就像USB_DRIVE/Data/APP_NAM ...

最新文章

  1. 学习笔记------tag文件
  2. VS2015编译ffmpeg 3.4.2
  3. 镜像服务器文件实时监控同步程序
  4. (精华)转:RDD:创建的几种方式(scala和java)
  5. 如何将网页部署到maven_如何通过Rultor将Maven工件部署到CloudRepo
  6. 反序列化的时候出现eof exception_FastJson序列化时候出现了$ref?还不赶紧学习下...
  7. 人工智能在麻将领域能够战胜人类吗?
  8. idea 2020 社区版传递参数
  9. Golang语言 零基础入门教程
  10. win10添加桌面图标到开始屏幕
  11. 01-AHP层次分析法
  12. 【备忘】最新区块链开发入门到精通视频教程下载
  13. 食堂刷卡消费系统服务器,食堂一卡通消费系统如何使用
  14. 四月之 诗四首和五十六句话
  15. Realtek 1296 (RTD1296) OpenWRT Android 双系统全功能开发板
  16. 福禄克FLUKE TIX650红外热像仪3.5英寸高像素大屏
  17. 安卓 手柄 linux,Linux joystick 游戏手柄编程 (获取输入数据)
  18. 使用H5中的表单标签制作一个简单的网页登陆页面
  19. 在linux下使用debugfs恢复rm删除的文件
  20. Day25:Python基础编程(函数)能力训练50天——回文数

热门文章

  1. 选择超融合基础设施?这五件事你考虑了吗?
  2. Renascence架构原理——最优化算法
  3. 使用windows server backup备份还原hyper-v 3.0虚拟机
  4. USACO Section 4.2 题解
  5. hdu2019——数列有序解题报告
  6. 全球计算机科学硕士申请,2019爱尔兰留学都柏林大学计算机科学硕士申请
  7. linux登陆界面卡死_Linux 上最好的五款音乐播放器
  8. Spring源码:spring-tx 事务
  9. Adobe AIR for html/js人员
  10. hibernate数据类型与OR映射