Android系统定时开关机
1、系统定时开关机需要系统权限,所以需要apk做系统签名。
2、在AndroidManifest.xml文件的头部的 标记中添加系统权限。
android:sharedUserId=“android.uid.system”
注意:设置定时开机后,如果改设置没有到时间,无法更改定时开机时间。
定时开机控制代码:(time 相对与当前时间的秒数,时间单位秒)
public fun timedSetAlarm(time: Int) {
val cmd = “echo $time > sys/class/rtc/rtc0/setalarm \n”
try {
val exeEcho = Runtime.getRuntime().exec(“sh”)
exeEcho.outputStream.write(cmd.toByteArray())
exeEcho.outputStream.flush()
} catch (e: Exception) {
Log.e(“Exception”, e.message)
}
}
public fun timedWakeAlarm(time: Int) {val cmd = "echo $time > sys/class/rtc/rtc0/wakealarm \n"try {val exeEcho = Runtime.getRuntime().exec("sh")exeEcho.outputStream.write(cmd.toByteArray())exeEcho.outputStream.flush()} catch (e: Exception) {Log.e("Exception", e.message)}}
定时关机:
自定义一个服务,在服务中定义一个线程,10秒循环判断定时时间的小时和分钟是否等于设定时间,等于目标时间就调用下面方法关机。
// 关机
public fun shutdown() {
val cmd = “reboot -p \n”
try {
val exeEcho = Runtime.getRuntime().exec(“sh”)
exeEcho.outputStream.write(cmd.toByteArray())
exeEcho.outputStream.flush()
} catch (e: Exception) {
Log.e(“Exception”, e.message)
}
}
使用RTC_WAKEUP方式定时关机,但是亲测发现关机时间偏差太大,不建议使用该方案。
// public void timedShutdown(Context context, long time) {
// log(“====timedCloseMachine()”);
// AlarmManager mAlarmManager = (AlarmManager)context.getSystemService(ALARM_SERVICE);
// Intent intent = new Intent(“eloam.intent.action.ACTION_SHUTDOWN”);
// PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 1002, intent, PendingIntent.FLAG_CANCEL_CURRENT);
// mAlarmManager.set(AlarmManager.RTC_WAKEUP, time, pendingIntent);
// }
RTC 使用
AIO-3568J开发板采用HYM8563作为RTC(Real Time Clock),HYM8563是一款低功耗CMOS实时时钟/日历芯片,它提供一个可编程的时钟输出,一个中断 输出和一个掉电检测器,所有的地址和数据都通过I2C总线接口串行传递。最大总线速度为 400Kbits/s,每次读写数据后,内嵌的字地址寄存器会自动递增
可计时基于 32.768kHz 晶体的秒,分,小时,星期,天,月和年
宽工作电压范围:1.0~5.5V
低休眠电流:典型值为 0.25μA(VDD =3.0V, TA =25°C)
内部集成振荡电容
漏极开路中断引脚
RTC驱动
Android SDK中的DTS配置参考: kernel/arch/arm64/boot/dts/rockchip/rk3568-firefly-port.dtsi
&i2c5 {
status = “okay”;
hym8563: hym8563@51 {status = "okay";compatible = "haoyu,hym8563";reg = <0x51>;#clock-cells = <0>;rtc-irq-gpio = <&gpio0 RK_PD3 IRQ_TYPE_EDGE_FALLING>;clock-frequency = <32768>;};
};
驱动参考:kernel/drivers/rtc/rtc-hym8563.c
接口使用
Linux 提供了三种用户空间调用接口。在 AIO-3568J开发板中对应的路径为:
SYSFS接口:/sys/class/rtc/rtc0/
PROCFS接口: /proc/driver/rtc
IOCTL接口: /dev/rtc0
SYSFS接口
可以直接使用 cat 和 echo 操作 /sys/class/rtc/rtc0/ 下面的接口。
比如查看当前 RTC 的日期和时间:
#cat /sys/class/rtc/rtc0/date
#cat /sys/class/rtc/rtc0/time
03:35:01
设置开机时间,如设置 120 秒后开机:
#120秒后定时开机
echo +120 > /sys/class/rtc/rtc0/wakealarm
查看开机时间
cat /sys/class/rtc/rtc0/wakealarm
#关机
reboot -p
PROCFS 接口
打印 RTC 相关的信息:
#cat /proc/driver/rtc
rtc_time : 03:36:05
rtc_date : 2021-03-10
alrm_time : 03:37:59
alrm_date : 2021-03-10
alarm_IRQ : yes
alrm_pending : no
update IRQ enabled : no
periodic IRQ enabled : no
periodic IRQ frequency : 1
max user IRQ frequency : 64
24hr : yes
IOCTL接口
可以使用 ioctl 控制 /dev/rtc0。
详细使用说明请参考文档 rtc.txt 。
Q1: 开发板上电后时间不同步?
A1: 检查一下 RTC 电池是否正确接入。
Android系统定时开关机相关推荐
- Android系统定时开关机实现简述
本实验基于Android6.0 一 概述: Android系统的定时开关机的实现分为定时开机和定时关机两部分,其中定时关机比较容易,因为不需要底层驱动的配合,只需要发特定广播就可以完成,而定时开机的实 ...
- 高通平台 android 12 定时开关机
高通平台 android 12 定时开关机 关机 关机实现 开机实现 总结 关机 AlarmManager取消了RTC_POWEROFF_WAKEUP 不支持通过AlarmManager设置关机唤醒设 ...
- Android 8.1 第三方apk通过数据库调用系统定时开关机功能
由于客户需要我们提供API给到他们实现定时开关机功能 做的是展锐的方案,简单看下原厂如何实现该功能 1.展锐创建了一个sqlite数据库用来存放定时开关机相关数据 vendor\sprd\platfo ...
- android中定时开关机的实现
关于android自动关机,网上有很多应用程序和例子. 相对于自动开机来说,自动关机可以在应用层通过设置alarm来实现.而自动开机,它需要底层rtc时钟的支持.我自己也没做过这个,不过在网上查到一个 ...
- Android 实现定时开关机另类实现--BSP级
前言: 条件,定时关机不能关机,只能待机:要能定时"开机"(唤醒) 1.定时"关机"(待机) 众所周知android 有wakelock 在有wakelock ...
- windows无法访问指定设备_万能的Windows定时开关机设置方法详解,不需要BIOS支持...
前面写了一篇文章[Windows定时开关机,让你告别开机烦恼,也不用担心忘关电脑了 ]来为电脑设置定时开关的功能,但是定时开机需要主板和BIOS的支持才能实现.在没有硬件支持的情况下我们该如何实现定时 ...
- Android:android定时开关机
android定时关机 (记住一定要在源码下编译生成apk,也就是放在源码的package/app下编译!!!) 先看一下简单的图形界面吧,比较简单的实现定时关机!!!(我的上传资源中有整个工程:注: ...
- Android 10 Settings应用如何去掉一级菜单定时开关机
代码路径: packages/apps/Settingssrc/com/android/settings/core/gateway/SettingsGateway.java packages/apps ...
- 魅蓝e android无限重启,魅蓝E手机怎么设置定时开关机 魅蓝E定时开关机设置图文教程...
上手魅蓝E手机之后,整体感觉还不错,尤其是外观工艺良好,日常使用流畅度很高.此外,小编还发现魅蓝E有一个比较赞的功能,支持定时开关机,这是目前iPhone都没有的功能.话不多说,本文主要分享一下魅蓝E ...
- 定时开关机实现原理-Android4.4/6.0
原址 一.寄存器介绍--RTCSA & RTCSAR 1.RTC是Real Time Clock的简称,它在硬件电路上单独供电,当系统关机时,CPU和其他外部硬件设备全部掉电,但是RTC仍然继 ...
最新文章
- python 对象真假值的实例(哪些视为False)
- 配置java ee_Java EE中的配置管理
- Python 查看pip安装的包的位置(查看pip安装包的路径)
- 专访uPlane陈宏强:手机遥控固定翼飞机还是蓝海
- linux下使用过的命令总结(未整理完)
- 并发编程(进程与线程)
- HDU2006 求奇数的乘积【入门】
- ubuntu下vlc-android编译
- jdbc增删改查_JDBC和MyBaits之争,Debug告诉你谁更胜一筹
- php旧物交易开源代码_二手市场交易网站PHP
- STM32——FLASH闪存编程原理与步骤
- 谷歌学术镜像mark
- vs2019控件灰化无法使用怎么解决
- Macbook Pro M1(macOS 12.0)读取NTFS移动硬盘方法
- 《计算机工程》期刊投稿经验分享
- Windows 7使用宝典安装技巧篇之——如何在Win7桌面上显示“我的电脑”
- epic如何修改着色器缓存路径
- visitor 模式
- 色色的互联网名词解释整理
- 大家常见的以ESP32为代表的WIFI、蓝牙双模模块,今天启明云端带来了一款低功耗、距离远的LoRa+蓝牙无线通讯模块WT5105-L1,我们一起看看这款模块在功能上有哪些优势?
热门文章
- python报时功能_Python(PyS60)做的简单语音整点报时的实现
- 小白重装系统步骤总结
- html m3u8 flash,m3u8插件-支持在pc端(flashplayer)播放m3u8格式文件-ckplayer使用方法...
- 家用电器行业十二月行业动态报告:11月冰洗表现亮眼,空调价格回升持续(20201231).PDF
- 【智能安防监控补光灯调光芯片方案】单节锂电降压恒流驱动芯片FP8013 最大输出3A体积小/静态功耗低/效率高/支持无频闪调光
- 如何将Excel表格随机打乱顺序
- MOFs/COFs单体 COFs单体 光电材料中间体的应用
- 如何使用计算机文件共享,两台电脑如何共享文件?【步骤图解】
- 4.1 Python图像的图像恢复-空域噪声滤波器
- java玫瑰花代码_给爱人的玫瑰花表白程序代码–Java版 | 学步园