我一直在检查一段时间以来将外部驱动器安装到Android手机,即,如果我将外部驱动器(硬/闪存/相机)插入Android设备,则Android手机应该能够访问存储文件系统。
市场上有通过电话控制外部设备的应用程序。
我可以使用USB主机模式{http://developer.android.com/guide/topics/connectivition/usb/index.html}与USB设备进行通信。但是USB主机和附件模式在Android 3.1(API级别12)或较新的平台中直接支持。
虽然一个名为DSLR控制器的应用{https://play.google.com/store/Apps/details?id=eu.chainfire.dslrcontroller& hl = en},需要Android 2.1或更高版本。由于该应用程序是基于通过Android手机访问相机的。如果该应用显示正确的信息,则似乎可以访问相机存储(或任何其他驱动器)的任务。
,但我也想在较低版本中使用该应用程序。任何类型的帮助将不胜感激。
请评论,如果需要该问题的更多描述。
谢谢。
您可以基于GitHub上的FileManager开源项目创建一个应用程序。您可以在此指定以标识您的设备。您可以根据需要更改这些代码。这是链接adroid-file-manager
如果您只想访问USB存储(例如闪存驱动器),则可以以普通的Java方式打开文件(java.io.File
等)。Android IC会在/sdcard/usbStorage/
下自动安装闪存驱动器,但我不确定以前的版本或其他类型的硬件。不过,它可能仍然有效,所以我建议您测试它,看看会发生什么。
完成此操作的唯一确定方法是将API级别使用高于12的API级别,否则一些手机可能会支持USB主机,但其中大多数不会支持它。首先是您需要为USB主机进行硬件支持的原因,即使存在的驱动程序可能不会被编译到内核中,即使尝试在Nook Color上实现USB主机,我也做了一些工作,即使它具有硬件支持,让USB主机工作近2个月,并且是一个专用的应用程序。因此,这不是您可以为每个设备做的事情。一些可能会支持它,但即使是那些也需要根,还有很多工作要安装驱动器等。DSLR摄像机也以相同的方式看待要求
- 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主机的设备。
从应用程序描述中,Android 2.x设备需要扎根。这表明他们具有USB主机代码的一些本机实现(可能是已加载的预编译内核模块)。
因此,此解决方案根据特定的硬件和软件(内核,供应商修改,皮肤)而有所不同。