main.c

#include #include #include #include #include #include int main(int argc, char **argv){        char buff[64];        int i = 0,out =0;        static uint8_t read_ep;        struct usb_descriptor_header* desc;        struct usb_descriptor_iter iter;        struct usb_interface_descriptor *intf = NULL;        struct usb_endpoint_descriptor *ep1 = NULL;        struct usb_endpoint_descriptor *ep2 = NULL;        struct usb_device *p = usb_device_open("/dev/bus/usb/001/002");        int vendorId = usb_device_get_vendor_id(p);        int productId = usb_device_get_product_id(p);        printf("vid =  %x, pid = %x\n",vendorId,productId);            usb_descriptor_iter_init(p, &iter);            while ((desc = usb_descriptor_iter_next(&iter)) != NULL && (!intf || !ep1 || !ep2)) {                if (desc->bDescriptorType == USB_DT_INTERFACE) {                    intf = (struct usb_interface_descriptor *)desc;                } else if (desc->bDescriptorType == USB_DT_ENDPOINT) {                    if (ep1)                        ep2 = (struct usb_endpoint_descriptor *)desc;                    else                        ep1 = (struct usb_endpoint_descriptor *)desc;                }            }            if (!intf) {                printf("interface not found\n");                exit(1);            }            if (!ep1 || !ep2) {                printf("endpoints not found\n");                exit(1);            }            printf("%d,%d,%d\n",ep1->bEndpointAddress,ep2->bEndpointAddress,intf->bInterfaceNumber);            if (usb_device_claim_interface(p, intf->bInterfaceNumber)) {                printf("usb_device_claim_interface failed errno2:\n");                exit(1);            }            if ((ep1->bEndpointAddress & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN) {               read_ep = ep1->bEndpointAddress;            } else {                read_ep = ep2->bEndpointAddress;            }        for(i = 0;i<10;i++){                out = usb_device_bulk_transfer(p,read_ep,buff,64,0);                printf("out = %d\n",out);        }    return 0;}

Android.mk
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := main.c
LOCAL_MODULE := main
LOCAL_MODULE_TAGS := optional
LOCAL_STATIC_LIBRARIES := \
    libusbhost \
include $(BUILD_EXECUTABLE)



更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. Android中实现可滑动的Tab的3种方式
  2. Android(安卓)对text文本内容添加下划线
  3. Android(安卓)手机获取Mac地址的几种方法
  4. android抽屉效果的实现
  5. Android(安卓)ViewPager简单实现 - 倒计
  6. 【AS-AndroidX】AndroidX迁移-支持依赖库
  7. 关于LayoutParams的使用经验
  8. android 检测当前网络并调用系统设置
  9. RN 执行打包 ./gradlew assembleRelease
  10. 实例教程一:电话拨号器