【问题标题】:Programmatically mounting USB storage on android 4.2.1在 android 4.2.1 上以编程方式安装 USB 存储
【发布时间】:2013-04-24 23:44:46
【问题描述】:

我在这里搜索和搜索,没有一个主题可以接近回答这个问题。

从根 APK 中安装和卸载 USB 记忆棒。我已经通过 adb 从命令行成功地做到了,如下所示:

提示>> mount -t vfat -o rw /dev/block/sda1 /sdcard/usb

这个命令后,我可以“cd /sdcard/usb”,可以看到U盘的内容了。

如果我使用 Process 类在代码中尝试此操作,我无法从 adb 的命令行、设备上的文件资源管理器等中看到任何内容:

proc = Runtime.getRuntime().exec(new String[]{"/system/xbin/su", "-c", "mount -t vfat -o rw /dev/block/sdb1 /sdcard/usb"});

proc.waitFor();

这是一个沙盒问题。它快把我逼疯了。这就是我认为正在发生的事情,我不知道如何解决它:当 Process 类调用 su 时,它会在一个全新的用户空间中这样做——它是自己的沙箱。挂载成功(我可以从一些调试中看到),然后进程终止并返回到位于不同沙箱中的应用程序。因此,我不仅看不到挂载,而且随着 su 进程的消失,它也被卸载了。

我需要能够从我的应用程序中安装 U 盘,读取/写入文件,然后在删除之前卸载它(否则有数据损坏的风险)。

我一直在寻找 Linux mount(2) 和 umount(2) 命令的 android 或 java 接口,但结果都是空的。一定有办法做到这一点!!

【问题讨论】:

  • 如果有人找到答案,请告诉我们。我尝试了第 3 方“sh script runner application”。它成功挂载了 USB 存储,但我无法从其他应用程序(文件资源管理器等)修改任何文件
  • 嗨,你能解决这个问题吗?我有同样的问题,我正在寻找解决方案。

标签: android filesystems usb mount unmount


【解决方案1】:

你必须仔细阅读。安装和卸载应该使用它来完成 http://developer.android.com/guide/topics/connectivity/usb/host.html

【讨论】:

  • 没有。 Android USB 主机 API 与挂载文件系统完全无关。 Stock Android 根本不支持这一点,因此不提供相关 API。
猜你喜欢
  • 2011-11-15
  • 2011-09-15
  • 1970-01-01
  • 2011-06-04
  • 2011-06-13
  • 1970-01-01
相关资源
最近更新 更多