Android系统定时开关机实现简述

本实验基于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 接收到指定广播后,控制定时开机 或者 控制定时关机

代码有时间贴。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux老A

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值