首页 > 编程知识 正文

安卓手机定时开关机,Android定时开机

时间:2023-05-06 19:23:07 阅读:210614 作者:902

本实验基于Android6.0

一 概述:

Android系统的定时开关机的实现分为定时开机和定时关机两部分,其中定时关机比较容易,因为不需要底层驱动的配合,只需要发特定广播就可以完成,而定时开机的实现稍微麻烦一些,因为需要底层RTC驱动的配合。

二 定时关机

定时关机实现核心代码:

XML文件: 提升apk系统权限,增加关机权限。

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="xxxxxxxxxxxxx" android:versionName="1.0" android:sharedUserId="android.uid.system"> //与系统一样的uid,将apk提升为系统权限<uses-permission android:name="android.permission.SHUTDOWN"/> //该权限只有系统级apk才能使用

JAVA 核心代码

// 创建Intent,如果要重启,则使用 Intent.ACTION_REBOOT Intent shutdownIntent = new Intent(Intent.ACTION_REQUEST_SHUTDOWN);// 这里设置的是:是否需要用户确认,若不需要,可以不设置或设置为false shutdownIntent.putExtra(Intent.EXTRA_KEY_CONFIRM, false);// 当作新任务执行 shutdownIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//启动Activity mcontext.startActivity(shutdownIntent); 三 定时开机

本人用的主板rtc驱动用的是HYM8563.c ,注册RTC驱动设备接口在:/sys/class/rtc/rtc0/device/alarm ,所以定时开机的逻辑便是上层向/sys/class/rtc/rtc0/device/alarm设备节点写入定时开机的时间给 rtc驱动即可。

四 验证

可以通过 adb shell 的发送广播指令来验证,或者麻烦一点自己写一个app界面,其实道理很简单,就是发送广播给定时开关机BroadcastReceiver,定时开关机BroadcastReceiver 接收到指定广播后,控制定时开机 或者 控制定时关机

代码有时间贴。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。