是否可以通过运行在 Dalvik VM 之上的应用程序(服务)以编程方式重新启动手机?
如果 SDK 不提供这个功能,那如何使用 NDK 调用内核提供的一些函数呢?我知道这个选项不是首选(不够稳定的库),但如果它是唯一的选择,我也必须考虑这一点。
是否可以通过运行在 Dalvik VM 之上的应用程序(服务)以编程方式重新启动手机?
如果 SDK 不提供这个功能,那如何使用 NDK 调用内核提供的一些函数呢?我知道这个选项不是首选(不够稳定的库),但如果它是唯一的选择,我也必须考虑这一点。
powermanager.reboot自 api 级别 8 起可用。需要重新启动权限
希望不会。:-)
如果可以随意重启手机,恶意应用程序可能会以随机间隔悄悄地重启手机,让你的生活变得不愉快。
NDK 在这里没有为您提供任何额外的功能,因为 Android 依赖于进程边界和 Linux 访问权限来保证安全性,而不是 Java 语言沙箱。
你为什么要这样做?也许还有其他方法可以完成您所追求的。
我在 Linux 中找到了可以解决问题的正确系统调用,经过数小时摆弄 NDK/JNI 路径后,我终于设法调用了该函数。结果是我需要超级用户权限。我有点猜到会是这样。
有没有办法克服这个问题?除了扎根电话,我仍在努力避免。
仍然可以使用 adb 重启手机。我猜它与 ddmd 或其他一些守护进程通信,所以有可能以某种方式使用相同的功能吗?