1、在manifest.xml 中添加权限

<uses-permission android:name="android.permission.ACCESS_SUPERUSER" />

2、新建DeviceAutoRebootService文件,并在manifest.xml 添加service

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;import androidx.annotation.Nullable;import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;public class DeviceAutoRebootService extends Service {private ScheduledExecutorService threadPool = null;private int betweenTime = 59;//间隔59秒执行一次private int delayTime = 2;//线程池开启5秒后执行private String time = "03:30";//重启时间一SimpleDateFormat sdf = new SimpleDateFormat("HH:mm", Locale.CHINA);String[] rebootArray = {"su", "-c", "reboot"};//执行重启的命令String dateStr = "";//获取的时间@Nullable@Overridepublic IBinder onBind(Intent intent) {return null;}@Overridepublic void onCreate() {super.onCreate();threadPool = Executors.newScheduledThreadPool(3);executeShutDown();}public void executeShutDown() {threadPool.scheduleAtFixedRate(new Runnable() {@Overridepublic void run() {dateStr = sdf.format(new Date());Log.d("重启", dateStr.equals(time) + "=" + dateStr);// root机子if (dateStr.equals(time)) {try {Runtime.getRuntime().exec(rebootArray);exec("reboot");} catch (IOException io) {io.printStackTrace();}}}}, delayTime, betweenTime, TimeUnit.SECONDS);}private String exec(String command) {Process process = null;BufferedReader reader = null;InputStreamReader is = null;DataOutputStream os = null;try {process = Runtime.getRuntime().exec("su");is = new InputStreamReader(process.getInputStream());reader = new BufferedReader(is);os = new DataOutputStream(process.getOutputStream());os.writeBytes(command + "\n");os.writeBytes("exit\n");os.flush();int read;char[] buffer = new char[4096];StringBuilder output = new StringBuilder();while ((read = reader.read(buffer)) > 0) {output.append(buffer, 0, read);}process.waitFor();return output.toString();} catch (IOException | InterruptedException e) {throw new RuntimeException(e);} finally {try {if (os != null) {os.close();}if (is != null) {is.close();}if (reader != null) {reader.close();}if (process != null) {process.destroy();}} catch (IOException e) {e.printStackTrace();}}}@Overridepublic void onDestroy() {threadPool.shutdown();threadPool = null;dateStr = null;super.onDestroy();}
}

3、MainActivity  onCreate方法中开启service

startService(new Intent(MainActivity.this, DeviceAutoRebootService.class));

android 设备实现定时重启(无root权限或已root)相关推荐

  1. android root权限获取失败,安卓手机为什么获取Root权限失败?Root失败是什么原因...

    安卓手机为什么获取Root权限失败?新手机.旧手机里面安装的最多的是什么APP?当然是预装!是的,相信很多用户都深有体会,当这种情况无法再忍受的时候,我们只能通过Root或者刷机解决问题,但只要用的人 ...

  2. Android设备上直接运行C/C++程序,无需ROOT!!!

    在Android开发过程中难免和JNI NDK打交道做混合开发,按一般方式当交叉编译完成得到so库后,我们将so库集成到Android项目里,打包成apk安装到手机上验证运行效果.但当我们想快速在手机 ...

  3. android root权限注册,安卓root权限获取的方法【图文教程】

    手机在我们的生活中得到了普及,主要是因为手机的功能不断强大.我们不仅可以使用手机通讯,也可以利用手机上网等.手机之所以有这么强大的功能,是因为现在的手机都安装了一个系统.这个系统可以供我们得到更好的用 ...

  4. android 程序root权限管理,手机root之后进行软件程序授权管理 手机root权限管理方法...

    很多智能手机都会进行刷机,获取ROOT权限,但是如果没有进行正确的软件程序授权设置的话,使用起来跟没有ROOT之前是一样的,没办法获得软件程序的最高权限,软件也是没办法使用的.因此,今天,我们就一起来 ...

  5. adb修改什么文件获取root权限_Android获取ROOT权限的通用方法

    背景 自从Android问世以后,给手机获取ROOT权限变成了玩机爱好者老生常谈的话题.拥有手机,却不能拥有操作手机的最高权限,这对于手机爱好者而言,这怎么可以忍?所以无论Android升到什么什么版 ...

  6. linux必须root权限才能mount,root执行/media可执行文件权限不够,chmod修改权限无效...

    http://blog.csdn.net/pipisorry/article/details/39649699 问题: 我想执行media文件夹下自己写的某个程序,但无法执行? 1. 于是我以root ...

  7. miui恢复root权限,miui9 root权限

    小米手机root怎么解除? 解除手机root权限的方法主要看开启方法,可以打开手机设置,在系统设置页面看是否有root权限设置选项,点击打开即可选择关闭. 若用户是通过第三方root软件获取root权 ...

  8. Android5手动root,魅蓝Note5如何获取ROOT权限?魅蓝Note5 ROOT教程(亲测可行)

    手机ROOT之后可以获得更多的系统权限,例如删除自带软件,修改字体以及系统设置等等.但是ROOT之后也会有很多安全方面的漏洞,小编建议小白用户不要尝试自己进行ROOT,有过刷机经验的发烧友可以尝试RO ...

  9. 怎样在linux更改文件权限设置密码,Linux 配置Hadoop的方法 (修改用户Root权限,设置root密码)...

    1.下载JDK 到官网去下载. tar  -zxf  jdkXXXX.tar.gz 解压到指定的文件夹.最好是进入到该文件夹下,运行该命令 . 2.配置JDK的环境变量. 运行   vim   ~/. ...

  10. 手机安装linux不root权限管理,不root手机也能使用linux环境并安装msf等工具

    抵挡不住物理键盘的诱惑在key2首发的时候下手了.黑莓的天性,不能root.之前用nexus习惯用linux deploy搭建的kali环境需要root权限,所以虽然key2敲命令很爽,但是不能使用l ...

最新文章

  1. 12.MySql关于获取当前时间的三个函数
  2. 三国志幻想大陆服务器维护,三国志幻想大陆8月14日更新维护公告
  3. ios调用restful接口_Postman调用https异常解决
  4. java线程运行无限次_java程序运行时到底有多少个活跃线程
  5. 一个数据科学家需要哪些核心工具包?
  6. 英特尔自动驾驶部门秘密申请IPO 有望成今年美股规模最大IPO
  7. Spark Structured : java.lang.RuntimeException: Offsets committed out of order: 2 followed by 0
  8. poi 获取删除线_Houdini 删除相机看不到的点背面的点或面
  9. 通过算法为宝宝选保姆,数据辅助决策靠谱吗?
  10. Bit、Byte、kb、KB、MB、KiB、MiB各表示什么意思?
  11. python 异常重试模块retry
  12. 802.11 wireless 详解
  13. MySQL函数---条件判断函数
  14. 血与荣耀(第二章-不解之谜)
  15. 这届“怕死”的年轻人,“疫后”正在拼命“养生”
  16. 【深度学习篇】---CNN和RNN结合与对比,实例讲解
  17. Openstack之路(九)云硬盘服务Cinder
  18. 修改Firefox浏览器 user-agent 微信浏览器UA
  19. JVM监控及诊断工具之GUI篇
  20. 泰凌微ble mesh蓝牙模组天猫精灵学习之旅 ① 小白也痴迷,如何在 Linux环境搭建编译烧录 安信可TB02,点亮一盏LED灯;

热门文章

  1. matlab做拉普拉斯反演,拉普拉斯变换反演
  2. 拉普拉斯变换转换简表
  3. 面试必备项目之从零开发大众点评后端(SSM)
  4. 大众点评的实时监控系统分析
  5. JavaSE IDEA 使用-面向对象
  6. #879273#基于django/neo4j的通讯录与QQ好友关系管理系统
  7. x9此计算机上没有hasp_中琅条码打印软件安装后弹出HASP错误代码处理方法
  8. 怎么对神经网络重新训练,神经网络重建
  9. CCRC和ISO27001有什么区别?
  10. 谷歌app使用的是什么字体_如何使用Google字体