3

是否可以通过运行在 Dalvik VM 之上的应用程序(服务)以编程方式重新启动手机?

如果 SDK 不提供这个功能,那如何使用 NDK 调用内核提供的一些函数呢?我知道这个选项不是首选(不够稳定的库),但如果它是唯一的选择,我也必须考虑这一点。

4

3 回答 3

3

powermanager.reboot自 api 级别 8 起可用。需要重新启动权限

于 2012-10-25T12:23:26.913 回答
3

希望不会。:-)

如果可以随意重启手机,恶意应用程序可能会以随机间隔悄悄地重启手机,让你的生活变得不愉快。

NDK 在这里没有为您提供任何额外的功能,因为 Android 依赖于进程边界和 Linux 访问权限来保证安全性,而不是 Java 语言沙箱。

你为什么要这样做?也许还有其他方法可以完成您所追求的。

于 2010-05-12T22:06:42.993 回答
1

我在 Linux 中找到了可以解决问题的正确系统调用,经过数小时摆弄 NDK/JNI 路径后,我终于设法调用了该函数。结果是我需要超级用户权限。我有点猜到会是这样。

有没有办法克服这个问题?除了扎根电话,我仍在努力避免。

仍然可以使用 adb 重启手机。我猜它与 ddmd 或其他一些守护进程通信,所以有可能以某种方式使用相同的功能吗?

于 2010-05-13T11:44:17.683 回答