以编程方式在Android 4.2.1上安装USB存储

时间:2013-04-30 23:01:58

标签: android filesystems usb mount unmount

我在这里搜索和搜索,没有任何主题可以回答这个问题。

在root的APK中安装和卸载USB记忆棒。我已成功通过命令行通过adb执行此操作,如下所示:

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

执行此命令后,我可以“cd / sdcard / usb”,并可以看到USB记忆棒的内容。

如果我在使用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过程。

我需要能够从我的应用程序安装USB记忆棒,读取/写入文件,然后在删除之前将其卸载(否则会导致数据损坏)。

我已经查找并查找了Linux mount(2)和umount(2)命令的android或java接口,并且显示为空。必须有一些方法来做到这一点!!

1 个答案:

答案 0 :(得分:0)

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