プログラムで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()メソッドの説明によると、「指定されたコマンドとその引数を別のネイティブプロセスで実行します。」したがって、コマンドは機能しますが、別のプロセスで機能すると思います。私のアプリが実行されているプロセスでは、何も影響を受けません。そのため、アプリを実行するプロセスでこれらのコマンドを実行したいと思います。
この質問のおかげで、プロセスIDを取得できます。このプロセスIDを使用して現在のプロセスを呼び出し、シェルコマンドを実行する方法はありますか?
それは不可能だと思いますcan you execute the command to kill the process from the same process
。なぜなら:。現時点ではそれは不可能ですのでProcess
、限定的な制限を含めるように拡張する可能性があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加