Android中的超级用户命令输出

Android中的超级用户命令输出,android,su,root,Android,Su,Root,我正在尝试使用超级用户命令创建位于特定位置的文件列表。我使用的方法如下: 我的特定代码如下所示: try { Process process = Runtime.getRuntime().exec("su"); DataOutputStream outputStream = new DataOutputStream(process.getOutputStream()); DataInputStream inputStrea

我正在尝试使用超级用户命令创建位于特定位置的文件列表。我使用的方法如下:

我的特定代码如下所示:

try {
            Process process = Runtime.getRuntime().exec("su");
            DataOutputStream outputStream = new DataOutputStream(process.getOutputStream()); 
            DataInputStream inputStream = new DataInputStream(process.getInputStream());

            outputStream.writeBytes("cd " + baseDirectory + "/system/app" + "\n");
            outputStream.flush();

            outputStream.writeBytes("ls" + "\n");
            outputStream.flush();

            outputStream.writeBytes("exit\n"); 
            outputStream.flush(); 
            process.waitFor();
        }  catch (IOException e) {

        }  catch (InterruptedException e) {

        }
它运行时没有任何错误。我的问题是我不知道如何产生任何产出


请注意,在代码中,我试图获取一个应用程序列表,我知道我可以用不同的方法来实现这一点,但我需要它在一般情况下工作…

刷新exit命令后,尝试读取DataInputStream:

BufferedReader reader = new BufferedReader(
        new InputStreamReader(process.getInputStream()));
int read;
char[] buffer = new char[4096];
StringBuffer output = new StringBuffer();
while ((read = reader.read(buffer)) > 0) {
    output.append(buffer, 0, read);
}
String result = output.toString();

您不需要使用su来获取已安装软件包的列表


然而,在代码中,您说它没有输出任何东西。但您希望它输出什么以及在哪里?你从未让它显示任何东西。

我想你不明白我的问题。我正在尝试获取文件列表,不一定是已安装的软件包,因为我正在访问受保护的文件,所以我确实需要使用SU。第二,我知道我没有输出任何东西,这就是我请求帮助做的。我不知道如何从上面的代码生成列表中的输出。