Android代码实现重启系统

问题描述:

在某种情况下,触发重启函数,重启安卓系统

问题分析:

涉及到Android系统的重启,必然需要申请root权限。

申请权限则有代码申请和将应用打包成系统应用两种方式。代码申请的话必然需要设备root,并且会弹框告知用户是否同意;封装成系统app,添加android.uid.system,再进行系统签名。
我根据我们的需求,采用的是后者。

Android并没有给出明显的重启系统的方法给我们调用,反倒是可以用使用Runtime的shell命令来实现重启系统

解决办法

  1. 在manifest中添加android.uid.system
  2. 添加权限?(这里记不清了。小伙伴们可以在调试报错的时候加上)
  3. 封装重启方法,核心代码如下
((ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE))
                    .killBackgroundProcesses(context.getPackageName());
Runtime.getRuntime().exec("su");
Runtime.getRuntime().exec("reboot");
  1. 系统签名你的应用。可参照我的另一篇文章Android应用添加系统签名

你可能感兴趣的:(Android代码实现重启系统)