我正在尝试以编程方式卸载和安装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命令?
答案 0 :(得分:1)
我认为这是不可能的,因为:can you execute the command to kill the process from the same process
。因此,目前无法实现,可能会延长Process
以包含有限的限制。