Android usb主机api和usb存储

Android usb主机api和usb存储,android,android-usb,Android,Android Usb,我正在尝试使用android主机api进行USB存储。对此我有很多疑问 使用主机api可以实现的所有功能。我想看看USB的内容,如果可能的话,那么正常的文件操作。我没有找到任何关于这方面的文档帮助 我能够使用UsbDeviceConnection类API进行claimInterface,但我无法理解bulkTransfer是如何工作的,因此,如果有人可以指导我或提供一些参考,我将自己尝试 我还试着阅读USB规范,我理解了bulkTransfer在USB级别的工作原理,但无法说明如何使用bulkT

我正在尝试使用android主机api进行USB存储。对此我有很多疑问

  • 使用主机api可以实现的所有功能。我想看看USB的内容,如果可能的话,那么正常的文件操作。我没有找到任何关于这方面的文档帮助

  • 我能够使用UsbDeviceConnection类API进行claimInterface,但我无法理解bulkTransfer是如何工作的,因此,如果有人可以指导我或提供一些参考,我将自己尝试

  • 我还试着阅读USB规范,我理解了bulkTransfer在USB级别的工作原理,但无法说明如何使用bulkTransfer实现android/java文件操作,而bulkTransfer使用的是UsbEndpoint而不是文件描述符


    提前谢谢

    Android USB主机API不包括USB大容量存储文件系统代码,截至2014年撰写本文时,Android也不会在操作系统级别“存储”USB大容量存储卷

    因此,要使用Android USB主机API访问USB大容量存储设备,必须在应用程序代码中实现必要的原始USB操作,以实现块级设备访问,并实现适当的文件系统逻辑本身。不用说,这些细节的复杂性超出了本文的回答范围,但您可以从研究其他平台的USB大容量存储驱动程序和文件系统驱动程序的文档或现有实现开始



    Android 6中的情况似乎有所不同,甚至可能不再允许通过USB主机API访问版本识别为存储设备的内容。那些以安卓6+为目标的用户可能需要去别处寻找,但较旧的设备将在一段时间内继续使用。

    OK,明白了。是否可以显示USB存储的内容?如果无法进行文件传输,大容量传输api的用例是什么?据我所知,控制传输适用于操纵杆类设备。如果我错了,请纠正我。显示内容是文件系统访问的一种形式,至少在某种程度上需要我列出的所有内容。大容量传输是一种用于移动大量数据的通用方法。记住,有各种各样的USB外设用于几乎无法想象的用途。Andrioid支持它们的通用基础。但是它们的细节留给您去实现。@ChrisStratton因为Android 6 USB OTG是由
    vold
    处理的,前提是它有一个受支持的文件系统(FAT[N]或现在的exFAT)。对于其他文件系统,如NTFS(甚至对于FAT和exFAT),USB主机大容量存储仍然可以工作,例如和。对吗?但我认为到目前为止,还没有人试图通过USB主机API在大容量存储上堆叠
    ext4
    。@PeterTran这个问题是大约2年前提出的,你回答的问题是6小时前!!你是在建议我把我的答案贴在这里吗?我是说它不是重复的,因为这是一个比你回答的问题旧的问题。