在应用程序的同一进程中执行shell命令

时间:2013-12-02 09:15:45

标签: android shell process

我正在尝试以编程方式卸载和安装USB设备。我可以使用以下命令在adb中执行此操作:

umount /mnt/usb1
mount -t vfat -o rw /dev/block/sdb /mnt/usb1

但是当我尝试从我的应用程序执行这些命令时,它不起作用。这是我使用的代码:

Process proc = Runtime.getRuntime().exec(
                    new String[] { "/system/xbin/su", "-c",
                            "umount /mnt/usb1" });
proc.waitFor();

Process pr = Runtime.getRuntime().exec(new String[] {
              "/system/xbin/su", "-c",
              "mount -t vfat -o rw /dev/block/sdb /mnt/usb1" });
pr.waitFor();

exec()方法的描述说:“在一个单独的本机进程中执行指定的命令及其参数。”所以我认为该命令可以在不同的进程中运行。在我的应用运行的过程中,没有任何影响。所以我想在我的应用程序运行的过程中执行这些命令。

由于question,我可以获取进程ID。有没有办法使用此进程ID来调用当前进程并执行shell命令?

1 个答案:

答案 0 :(得分:1)

我认为这是不可能的,因为:can you execute the command to kill the process from the same process。因此,目前无法实现,可能会延长Process以包含有限的限制。