使用Android手机作为USB Host将外部驱动器挂载到手机,并通过电话访问外部驱动器的内存

我一直在检查一段时间来安装外部驱动器到Android手机,即如果我插入外部驱动器(硬/闪光/相机)到Android设备,Android手机应该能够访问存储文件系统。

市场上有通过电话控制外部设备的应用程序。

我可以使用USB主机模式( http://developer.android.com/guide/topics/connectivity/usb/index.html )与USB设备进行通信。 但USB主机和配件模式直接支持Android 3.1(API级别12)或更新的平台。

而名为DSLR Controller的应用程序( https://play.google.com/store/apps/details?id=eu.chainfire.dslrcontroller&hl=en )需要Android 2.1或更高版本。 由于该应用程序是基于通过Android手机访问摄像头。 如果应用程序显示正确的信息,则访问摄像机(或任何其他驱动器)存储的任务似乎是可能的。

但是我想用较低版本的应用程序。 任何forms的帮助将不胜感激。

请评论,如果需要更多描述的问题。

谢谢。

唯一可行的方法是使用12以上的API级别,否则less数手机可能支持USB主机,但大多数不会支持它。 原因首先你需要硬件支持USB主机,即使存在所需的驱动程序可能不会被编译到内核,我做了一些工作,同时尝试实现USB主机上的angular色,即使它有硬件支持,得到USB主机工作了近2个月,一个专门的应用程序。 所以它不是你能够为每个设备做的事情。 有些人可能会支持它,但即使是那些将需要根和更多的工作安装驱动器和所有这些..数码单反相机也以同样的方式看待需求

- Android device with ARMv7-A or newer CPU architecture (most 1ghz+ devices) - Not rooted: Android 3.1 or higher with USB host kernel+API support - Rooted: Android 2.3.1 or higher with USB host kernel support 

这些是唯一可以支持USB主机的设备。

您可以在Github上创build一个基于FileManager开源项目的应用程序。 您可以在那里指定您的设备。 您可以根据您的需要更改这些代码。 这里是链接Adroid-File-Manager

如果您只想访问USB存储设备(如闪存驱动器),则可以使用普通的Java方式( java.io.File等)打开文件。 Android ICS自动挂载/sdcard/usbStorage/下的闪存驱动器,但我不确定以前的版本或其他types的硬件。 它可能仍然有效,所以我build议你testing一下,看看会发生什么。

从应用程序描述中,Android 2.x设备需要扎根。 这表明他们有一些USB主机代码的本地实现(可能是他们加载的预编译的内核模块)。

因此,针对此问题的解决scheme根据运行的特定硬件和软件(内核,供应商修改,皮肤)而有所不同。