安卓通过两种模式:USB AccessoryUSB Host 模式支持多种 USB 外设与安卓 USB 配件(实现安卓配件协议的硬件)。在 USB 配件模式下,外部 USB 硬件充当 USB 主机。配件实例可能包含机器人控制器、扩展坞、诊断和音乐设备、售货亭、读卡器以及更多。这赋予了没有主机能力的安卓设备与 USB 硬件交互的能力。 Android USB 配件必须设计为与 Android 设备配合使用,并且必须遵守 Android 配件通讯协议。在 USB 主机模式下,安卓设备充当主机。设备实例包含数码相机、键盘、鼠标和游戏手柄等。专为各种应用和环境设计的 USB 设备仍然可以与可以正常与设备通信的 Android 应用程序进行交互。

图1显示了两种模式之间的差异。 当 Android 设备处于主机模式时,它作为 USB 主机并为总线供电。 当 Android 设备处于 USB 配件模式时,连接的USB硬件(在这种情况下为 Android USB 配件)充当主机并为总线供电。

图1. USB Host 与 Accessory 模式

Android 3.1(API级别12)或更新的平台直接支持 USB 配件和主机模式。USB 配件模式也作为附加库追溯到 Android 2.3.4(API 级别10),以支持更广泛的设备。 设备制造商可以选择是否在设备的系统镜像上包含附加库。
注意:无论平台级别如何,USB 主机和配件模式的支持最终取决于设备硬件。 您可以通过 <uses-feature> 元素过滤支持 USB主机和配件的设备。 有关详细信息,请参阅 USB 配件和主机文档。

调试注意事项

当使用 USB 配件或主机功能调试应用时,很有可能将 USB 硬件连接到 Android 设备。这将阻止通过 USB 与 Android 设备进行 adb 连接。您仍然可以通过网络连接访问 adb。 要通过网络连接启用adb:

1. 通过 USB 将 Android 设备连接到计算机。

2. 在 SDK platform-tools/ 目录中,在命令提示符下输入 adb tcpip 5555

3. 输入 adb connect <device-ip-address>:5555 现在应该连接上了 Android 设备,并可以发出通常的 adb 命令,如:adb logcat。

4. 要将设备设置为侦听 USB,输入adb usb

原文链接:https://developer.android.com/guide/topics/connectivity/usb/index.html

安卓USB开发教程 一 USB Host 与 Accessory相关推荐

  1. 安卓USB开发教程 二 USB Host

    USB Host(主机模式) 当 Android 设备处于 USB 主机模式时,它充当 USB 主机,为总线供电,并枚举连接的 USB 设备.Android 3.1 及更高版本支持 USB 主机模式. ...

  2. 安卓USB开发教程 三 USB Accessory

    USB Accessory(配件模式) USB 配件模式允许用户连接专为 Android 设备设计的 USB 主机硬件.配件必须遵守 Android Accessory Development Kit ...

  3. 嵌入式USB开发系列(1):USB简介

    嵌入式USB开发系列(1):USB简介 文章目录 嵌入式USB开发系列(1):USB简介 1. USB的优势 2. USB协议标准 3. USB通信接口 声明 声明:USB资料网站 链接,相关协议和文 ...

  4. 《USB开发大全》—USB软硬件开发指南,无可替代的工具书

    <USB开发大全>-USB软硬件开发指南,无可替代的工具书 内容简介 <USB开发大全(第4版)>介绍了有关通用串行总线(Universal Serial Bus,USB)的工 ...

  5. 安卓USB开发教程 四 安卓 AOA

    Android 开放性配件协议(AOA) Android 开放性配件协议(AOA)支持允许外部 USB 硬件(Android USB 配件)与工作在配件模式下的 Android 设备进行交互.当处于配 ...

  6. Libusb开发教程三 USB设备程序开发

    首先,需要指出本篇博客的基础仍然是基于 libusb V1.0 以下.主要考虑到保持与之前博客的连贯性,在上一篇博客中介绍了老版本中可以被调用的 API 以及功能介绍,对于库中 API 接口函数的使用 ...

  7. USB开发基础:USB设备的开发流程

    USB设备的开发一般包括主机端(上位机)驱动程序的开发(如果您的USB设备符合某一标准设备类且主机端已经提供了此类设备的驱动程序的话,则可以省掉此步骤)和USB设备端驱动程序的开发,有时还可能包括主机 ...

  8. 安卓BLE开发教程(一) BLE基础

    我试图以一种简单的方式去把重要的事情讲清楚.目的是希望BLE协议栈和基础概念简单化,让自己及类似的安卓开发者可以在较短的时间内把握住BLE的核心及使用方法.BLE本身很复杂,但对于安卓开发而言只要抓住 ...

  9. 安卓USB开发教程 六 安卓 AOA 2.0

    Android Open Accessory Protocol 2.0 目录 Detecting AOAv2 support Audio support HID support Interoperab ...

最新文章

  1. POJ 2389 Bull Math(大数乘大数)
  2. [ios]NSLock锁
  3. MD5加密解密帮助类
  4. 群里别人问的杂七杂八的问题
  5. UCloud想吃科创板的“第一个螃蟹”
  6. Shell脚本之IP网络地址和广播地址计算
  7. [ASP,VB] - 利用ASP调用API COM接口实现开关机
  8. 带有Javaslang的Java 8中的功能数据结构
  9. Android中创建自己的对话框
  10. 计算机三级之嵌入式系统学习笔记4
  11. json 转对象函数_JSON_QUERY()函数从JSON数据提取对象
  12. 编写SQL Server数据库对象脚本的方法
  13. 非科班普通本科就注定进不了大厂?我不服
  14. 计算机网络物理结构两大部分组成,计算机网络的组成部分 -华强电子网
  15. 48.网络安全渗透测试—[穷举篇11]—[webshell密码破解(asp/aspx/php)]
  16. secsetupwizard以停止,三星手机恢复出厂设置之后,出现SecSetupWizard已停止的错误...
  17. c语言装b程序,C语言打造表白和装逼利器:亲爱的让我们相爱在一起,酷炫的梦幻...
  18. PPT如何制作一级标题、二级标题
  19. 驾驶习惯也能识人?基于时空孪生神经网络的轨迹识别
  20. Calendar(日历)

热门文章

  1. 回归分析预测_使用回归分析预测心脏病。
  2. 服务器安装mysql_阿里云服务器上安装MySQL
  3. cnn图像二分类 python_人工智能Keras图像分类器(CNN卷积神经网络的图片识别篇)...
  4. leetcode 1208. 尽可能使字符串相等(滑动窗口)
  5. leetcode 861. 翻转矩阵后的得分(贪心算法)
  6. r语言编程基础_这项免费的统计编程课程仅需2个小时即可学习R编程语言基础知识
  7. 代码走查和代码审查_如何避免代码审查陷阱降低生产率
  8. 设计模式(第十七式:迭代器模式)
  9. 解决Eclipse的Team菜单中没有SVN选项的问题
  10. python-3.6.2安装