android USB host编程
测试手机:华为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编程相关推荐
- Android USB转串口编程
安卓手机的对外通信接口就只有USB跟音频口,我们可采用其进行与外设进行通信.今天,我们来讲讲安卓手机利用USB接口与外设进行通信.此时,有两种情况. 第一:USB(手机)<--->USB( ...
- Android USB Host与HID通讯
Android USB Host与HID通讯 (一) Android USB Host与HID通讯 (二) Android USB Host与HID通讯Demo android usb host 读写 ...
- Android USB Host与HID通讯(二)
2019独角兽企业重金招聘Python工程师标准>>> 原文出处:http://han21912.lofter.com/post/c3919_51401d 接上一篇:Android ...
- 翻译Android USB HOST API
翻译Android USB HOST API 源码地址:http://developer.android.com/guide/topics/connectivity/usb/host.html 译者注 ...
- android usb host hid,Android USB Host与HID通讯
前端时间捣鼓一个HID的硬件, 需要和android通信, 网上搜索了一圈,收获不小. 其中代码之处有些地方需要注意的, 特此注明一下: /*** USB HOST 连接 HID *@authorIV ...
- Android USB Host开发之manager.getDeviceList()获取不到设备列表【转载】
原文:https://www.2cto.com/kf/201305/211304.html 同样遇到这样的问题,我的Android设备是原道N12C,官方的4.0.3系统,遇到这个问题,后来找了半天找 ...
- Android USB Host开发之manager.getDeviceList()获取不到设备列表
同样遇到这样的问题,我的Android设备是原道N12C,官方的4.0.3系统,遇到这个问题,后来找了半天找到的,现在汇总一下吧: 1.创建 android.hardware.usb.host.xml ...
- Android usb host
当你的Android主机是处于USB主模式下,它充当USB主机,开启设备并列举出所有已连接的USB设备.这种模式在Android 3.1及以上的版本支持. API预览 在开始开发USB Host之前, ...
- android otg读写文件,Android USB Host在USB设备OTG中读/写文件
我正在编写Android设备是主机的应用程序.用户将USB驱动器连接到Android设备,我的应用程序将在USB驱动器中写入一些文本文件.文本文件的路径就像USB_DRIVE/Data/APP_NAM ...
最新文章
- 学习笔记------tag文件
- VS2015编译ffmpeg 3.4.2
- 镜像服务器文件实时监控同步程序
- (精华)转:RDD:创建的几种方式(scala和java)
- 如何将网页部署到maven_如何通过Rultor将Maven工件部署到CloudRepo
- 反序列化的时候出现eof exception_FastJson序列化时候出现了$ref?还不赶紧学习下...
- 人工智能在麻将领域能够战胜人类吗?
- idea 2020 社区版传递参数
- Golang语言 零基础入门教程
- win10添加桌面图标到开始屏幕
- 01-AHP层次分析法
- 【备忘】最新区块链开发入门到精通视频教程下载
- 食堂刷卡消费系统服务器,食堂一卡通消费系统如何使用
- 四月之 诗四首和五十六句话
- Realtek 1296 (RTD1296) OpenWRT Android 双系统全功能开发板
- 福禄克FLUKE TIX650红外热像仪3.5英寸高像素大屏
- 安卓 手柄 linux,Linux joystick 游戏手柄编程 (获取输入数据)
- 使用H5中的表单标签制作一个简单的网页登陆页面
- 在linux下使用debugfs恢复rm删除的文件
- Day25:Python基础编程(函数)能力训练50天——回文数