我想在按下按钮时重启手机。为此我写了这些..
PowerManager pm;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
Button test = (Button) findViewById(R.id.button1);
test.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
try {
Process proc = Runtime.getRuntime().exec(new String[] {"su", "-c", "reboot" });
int result = proc.waitFor();
Toast.makeText(ForTestActivity.this, "INt:"+result, Toast.LENGTH_SHORT).show();
} catch (Exception ex) {
Log.i("XXXXXXXXXXXX", "Could not reboot", ex);
}
}
});
}
这在模拟器中不起作用。我正在使用android2.3.3来开发这个应用程序。 它没有给出任何错误,按下按钮后没有任何反应。 吐司将结果显示为1。
之后我也尝试了这段代码..
Process p = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(p.getOutputStream());
os.writeBytes("reboot"+"\n");
os.writeBytes("exit\n");
os.flush();
同样的结果。我也添加了必要的权限。有人有任何想法吗?
[不知怎的,我想按下按钮后重启(或关机)手机。]
答案 0 :(得分:1)
提出了类似的问题并回答here。在您使用固件密钥签名之前,无法重新启动无根电话。
答案 1 :(得分:1)
您是否在没有“su -c”的情况下尝试了上述命令?
当我输入“adb shell reboot”时,我的手机会重新启动(但我的手机 rooted ,在这种情况下需要),所以我认为如果你只是从代码执行“reboot”,效果应该相似。我认为“su -c”是不必要的,因为您已经在root电话上拥有root权限(默认情况下IIRC模拟器已植根)。
正如其他人所说,这对无根电话无效。