1

私の 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/...
4

1 に答える 1