我正在寻找一种可用于重新启动有根设备的解决方案。我知道重启设备对用户来说是非常糟糕的设计,如此处所述,而且它并不是真正的应用程序。主要目的是在测试期间重新启动手机(我在视频聊天应用程序上工作,有时我需要在一切都向南时重新启动)
我观察到,在终端(adb shell
或 ConnectBot 等)中使用 reboot 重启手机比使用ACTION_REBOOT重启手机要快得多,但无论如何我都无法使用。
目前,我能够获得超级用户权限,
Process root = Runtime.getRuntime().exec("su");
但我无法进行实际的重启。我尝试了 G1 (HTC) 和 Galaxy S (Samsung),但没有成功。我找到了重启可执行文件/system/bin/reboot
以下是我的一些尝试:
Process reboot = Runtime.getRuntime().exec("/system/bin/reboot");
Process reboot = Runtime.getRuntime().exec("reboot");
Process reboot = Runtime.getRuntime().exec("su reboot");
我读过这篇关于 Runtime.exec() 陷阱的文章,但我认为我不是这种情况。
由于使用 ConnectBot 使我能够执行这样的操作,我很确定这是可能的。请不要告诉我去看看ConnectBot 代码,这是一个大而复杂的项目 :)
你能帮我解决这个问题吗?
谢谢。