我正在寻找一种可用于重启root设备的解决方案.我知道重新启动设备对于用户来说是非常差的设计,如此处所述,并且它不适用于应用程序.主要目的是在测试期间重启手机(我在视频聊天应用程序上工作,有时我需要在一切都向南时重启)
我观察到重新启动手机远比使用终端(adb shell或ConnectBot)中的重启要快得多,而不是通过使用ACTION_REBOOT重新启动,这无论如何都无法使用.
目前,我可以获得超级用户权限
Process root = Runtime.getRuntime().exec("su");
Run Code Online (Sandbox Code Playgroud)
但我不能做实际的重启.我尝试G1(HTC)和Galaxy S(三星)没有任何成功.我找到了重启可执行文件/system/bin/reboot
以下是我的一些尝试:
Process reboot = Runtime.getRuntime().exec("/system/bin/reboot");
Process reboot = Runtime.getRuntime().exec("reboot");
Process reboot = Runtime.getRuntime().exec("su reboot");
Run Code Online (Sandbox Code Playgroud)
我读过这篇关于Runtime.exec()陷阱的文章,但我想我不是这种情况.
由于使用ConnectBot使我能够做这样的动作,我很确定它是可能的.请不要告诉我去看看ConnectBot代码,这是一个庞大而复杂的项目:)
你能帮我解决这个问题吗?
谢谢.
我想知道是否有办法通过代码重启设备.我试过了:
Intent i = new Intent(Intent.ACTION_REBOOT);
i.putExtra("nowait", 1);
i.putExtra("interval", 1);
i.putExtra("window", 0);
sendBroadcast(i);
Run Code Online (Sandbox Code Playgroud)
并添加了权限,REBOOT但它仍然无法正常工作.
谢谢