【问题标题】:Using Android phone as USB Host to mount external drives to phone and accessing the memory of the external drive through phone使用Android手机作为USB Host,将外置硬盘挂载到手机上,通过手机访问外置硬盘的内存
【发布时间】:2012-10-16 09:11:11
【问题描述】:

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

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

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

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

但我也想在较低版本中使用该应用程序。任何形式的帮助将不胜感激。

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

谢谢。

【问题讨论】:

  • 您好,我不完全理解您的问题...您想知道如何在 2.1 设备上不使用 USB 主机模式访问存储设备,对吗?关于您提到的应用程序,我认为他们使用的是:gphoto.org/proj/libgphoto2,这是特定于数码相机的。
  • 不,我不是,但概率很高。你可以问问开发者。
  • Android detect usb storage for kitkat (4.4) 的可能重复项。在那里我发布了 pre-6.0 和 6.0/above 的解决方案。

标签: android usb-otg


【解决方案1】:

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

【讨论】:

  • 请注意,这是指向文件管理器的链接,而不是用于管理连接的 USB 设备及其文件的程序。
  • 我认为这个答案与问题无关。
【解决方案2】:

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

【讨论】:

  • 但是安卓设备没有检测到USB设备。你有没有试过你推荐的概念!!
  • 这就是它在我手机上的作用。你用的是什么设备?
  • LG Optimus...你能用代码实现提示我检测 USB 吗?
  • 它运行什么版本的Android?这仅适用于较新的手机。如果它不起作用,您可能必须使用 USB 主机 API 自己实现它。更多信息可以在这里找到:developer.android.com/guide/topics/connectivity/usb/index.html
  • 我认为它是否在Android 4.0之前的手机中实现取决于制造商。有些有,有些没有。
【解决方案3】:

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

因此,解决方案会根据其运行的特定硬件和软件(内核、供应商修改、皮肤)而有所不同。

【讨论】:

    【解决方案4】:

    唯一确定的方法是使用 12 以上的 API 级别,否则少数手机可能支持 USB 主机,但大多数不支持。 原因首先你需要usb主机的硬件支持,即使存在所需的驱动程序也可能不会编译到内核中,我在尝试在nook color实现usb主机时做了一些工作,即使它有硬件支持,让 USB 主机正常工作花了将近 2 个月的时间和一个专门的应用程序。所以它不是你可以为每台设备做的事情。一些人可能会开箱即用地支持它,但即使是那些也需要 root 和更多的工作来安装驱动器等等。 单反相机也是这样做的,看需求也是一样的

    - 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 主机的设备。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-23
      • 1970-01-01
      • 2015-05-03
      • 1970-01-01
      • 1970-01-01
      • 2015-01-04
      • 2017-07-23
      • 2019-04-20
      相关资源
      最近更新 更多