私の Android アプリは 15 GB のデータを保存する必要があるため、リムーバブル ストレージを使用する必要があります。そのため、アプリの読み込み中に fsck が実行されているかどうかを確認する必要があります (その場合は終了します)。もちろん、私はすることができます
Runtime.getRuntime().exec("ps");
しかし、この解決策は信頼できないと読みました...だから私は
ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
for (RunningAppProcessInfo tasks : manager.getRunningAppProcesses()) {
System.out.println(" ########## " + tasks.processName + " #######");
}
しかし、私は何も見ませんfsck
。実際、使用するps
と、次のように実行されているように見えます
/system/bin/fsck.exfat -R -f /dev/...
を使用する唯一の方法Runtime.getRuntime().exec("ps")
ですか?
ありがとう!
L.
編集
コマンドEnvironment.getExternalStorageState()
が機能しません。SDカードをアンマウント/マウントした後、以下のコードでAT THE SAME TIMEを取得しMOUNTED
、/system/bin/fsck.exfat -R -f /dev/...
String line;
BufferedReader br;
try {
br = new BufferedReader(new InputStreamReader( Runtime.getRuntime().exec("ps").getInputStream()));
while ((line = br.readLine()) != null) {
if (line.contains("/fsck"))
System.out.println("### PS:" + Environment.getExternalStorageState() + " ### " +line);
} catch (IOException e1) {
e1.printStackTrace();
}
これは私が得る出力です:
PS:mounted ### root [...] D /system/bin/fsck.exfat /dev/...