ご覧のとおり、次のコードを使用して単純なルート エクスプローラー アプリを作成しています。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(!(requestRoot()))
Toast.makeText(this.getActivity(), "Could Not Get Root!", Toast.LENGTH_SHORT).show();
else
Toast.makeText(this.getActivity(), "Root Found!", Toast.LENGTH_SHORT).show();
getDir("/"); //=>OK
getDir("/data"); //=>NOT OK
getDir("/data/"); //=>NOT OK
}
private void getDir(String dirPath)
{
getActivity().getActionBar().setTitle("Location: " + dirPath);
item = new ArrayList<String>();
try {
Process p = Runtime.getRuntime().exec("ls "+dirPath);
BufferedReader in = new BufferedReader(
new InputStreamReader(p.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
item.add(line);
Log.e(dirPath, dirPath +" => "+ line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
問題はgetDir("/");
、期待されるすべての結果(データを含むファイルのリスト)がgetDir("/data");
得られるが、結果やエラーが得られないことです...
問題が何であるかについての手がかりをありがとう。
編集:私も試しました
プロセス p = Runtime.getRuntime().exec("sudo ls /data");