我在这里搜索了一遍又一遍,没有任何主题接近于回答这个问题。
从带根的APK中挂载和卸载U盘。我已经成功地通过adb从命令行完成了这项工作,如下所示:
prompt>>装载-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 --它自己的沙箱。挂载成功(我可以从一些调试中看到),然后进程终止并返回到位于不同沙箱中的应用程序。正因为如此,我不仅看不到挂载,而且随着su进程的消失,它也被卸载了。
我需要能够从我的应用程序挂载U盘,读/写文件,然后在移除它之前卸载它(否则有数据损坏的风险)。
我一直在寻找用于Linux mount(2)和umount(2)命令的android或java接口,但一无所获。一定有办法做到这一点!!
发布于 2014-02-06 23:11:54
你必须仔细阅读它。应使用该http://developer.android.com/guide/topics/connectivity/usb/host.html执行装载和卸载
https://stackoverflow.com/questions/16310329
复制相似问题