Java 运行命令并将输出放入TextView?
基本上,我正在编写一个应用程序,并试图对文件执行Java 运行命令并将输出放入TextView?,java,android,eclipse,Java,Android,Eclipse,基本上,我正在编写一个应用程序,并试图对文件执行cat。我有一个非常基本的UI,它由一个按钮和一个文本视图组成。当我点击该按钮时,我想执行命令并在屏幕上显示输出(我相信TextView是最好的方法?)。我知道如何使它显示一组文本,但我需要它显示我正在运行的caton上的文本。提前谢谢 编辑:代码是 package com.android.test; import java.io.BufferedReader; import java.io.IOException; import java.io
cat
。我有一个非常基本的UI,它由一个按钮和一个文本视图组成。当我点击该按钮时,我想执行命令并在屏幕上显示输出(我相信TextView是最好的方法?)。我知道如何使它显示一组文本,但我需要它显示我正在运行的cat
on上的文本。提前谢谢
编辑:代码是
package com.android.test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class Root3Activity extends Activity {
/** Called when the activity is first created. */
Button getVoltagesButton;
TextView voltages;
protected static final String get_voltages = "cat /sys/devices/system/cpu/cpu0/cpufreq/vdd_levels_havs";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String currentVoltages = null;
getVoltagesButton = (Button)findViewById(R.id.button1);
getVoltagesButton.setOnClickListener(VoltageListener);
voltages = (TextView)findViewById(R.id.textView1);
}
private OnClickListener VoltageListener = new OnClickListener()
{
public void onClick (View v) {
try {
Runtime.getRuntime().exec(get_voltages);
//what goes here??
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
}
用于运行cat
的exec()
方法返回一个对象。流程对象有一个名为的方法。我想你可以用它来获得一个输入流,你可以用它来获得标准输出。由此,您可以将从输入流读取的值写入文本视图
private static final String get_voltages = "/sys/devices/system/cpu/cpu0/cpufreq/vdd_levels_havs";
private final String getCurrentValue() throws IOException{
File yourFile = new File(get_voltages);
BufferedReader br = new BufferedReader(new FileReader(yourFile));
String line, vm = "";
while ((line = br.readLine()) != null) {
vm = line;
break;
}
return vm;
}
这将读取文件,在本例中返回最后一行。如果文件有多行,可以使用StringBuilder sB。然后在while循环中,您可以使用sb.append(line);然后使用返回键将其设置为textview。另外,我在XDA上向您发送了一条关于帮助您完成此项目的私人消息,但由于某些原因,它无法通过。爱你HTC Evo的脚本如果可以的话,我会帮你的。你能发布你的跑步猫代码吗?它已经启动了,但它的格式很奇怪。对不起,如果我把代码改成这个<代码>进程p=Runtime.getRuntime().exec(get_);DataOutputStream os=新的DataOutputStream(p.getOutputStream())代码>我知道我走的是正确的道路,我只是不知道如何将此信息发送到TextView(不想使用Toast,因为此信息需要保留在屏幕上)。知道吗?请注意,SDK中没有shell命令。您应该使用标准的JavaIOAPI来读取文件。这将比执行子命令更有效。不幸的是,这对我来说仍然不起作用。我确实收到了你的PM,我回答道。只要给我发一封电子邮件,如果XDA是哑巴,点击我的名字在这里,我的电子邮件被列出。再次感谢!