0

私は、別のアプリのデータを必要とするアプリを構築しようとしています。

このため、最初にデバイスにルートアクセス権があることを確認してからスーパーユーザーアクセス権を取得し、最後に日付フォルダーからファイルを読み取ろうとしますが、canRead() 関数は false を返します。

コード :

    if (IsRoot){ //check device root
        Process root = Runtime.getRuntime().exec("su");//SuperUser Permission
        if(appInstalledOrNot("com.app.name")) {//check application installed
        File cacheFile = new File(Environment.getDataDirectory().getAbsolutePath() + "/data/com.name.app/files/", "SOME_FILE"); //Get file
            if(cacheFile.exists()){
                Toast.makeText(this, "" + cacheFile.canRead(), Toast.LENGTH_SHORT).show(); //Toaste result (false return)
            }
        }

    }
4

1 に答える 1

0

最初に chmod コマンドを実行して、特定のパスへの読み取り/書き込みアクセスを取得します。たとえば、パス「/data/com.name.app/files/」

これらのコマンドを使用します

Process process = null; try { process = Runtime.getRuntime().exec(new String[] {"su" "mount -o rw,remount /system", "chmod -R 777 /data/com.name.app/files/", "mount -o ro,remount /system" }); process.waitFor(); } catch (Exception e) {}

それでおしまい

于 2016-04-21T08:13:51.710 に答える