android 7.1.2源码定制自动开关机功能
环境:android7.1.2msm8953需求描述:系统默认开启定时开关机功能,在每周二和每周五的凌晨1:58关机,2:00开机。经过阅读源码发现,定时开关机是通过操作timerswitch.db数据库来完成的。对应源码位置:1、./vendor/qcom/proprietary/qrdplus/Extension/apps/TimerSwitchSettings/src/com/android
环境:
android7.1.2
msm8953
需求描述:
系统默认开启定时开关机功能,在每周二和每周五的凌晨1:58关机,2:00开机。
经过阅读源码发现,定时开关机是通过操作timerswitch.db数据库来完成的。
对应源码位置:
1、./vendor/qcom/proprietary/qrdplus/Extension/apps/TimerSwitchSettings/src/com/android/timerswitch/provider/TimerSwitchDatabaseHelper.java
分析:
DEFAULT_SWITCH_1 = "(7, 0, 127, 1, 0);"; 表示开机的时间设置
DEFAULT_SWITCH_2 = "(23, 0, 127, 1, 0);";表示关机的时间设置
括号中的参数解读:
第一个数据7和23分别表示24小时制的早上7点和晚上23点
第二个数据0表示分钟
第三个参数127对应十六进制0x7f 表示周一至周日,计算方式可以参考源码。
第四个参数1表示默认打开定时开关机,如果是0表示默认关闭。
第五个参数目前还没有搞明白是什么意义
关于第三个参数如果不知道怎么计算的话可以按照以下步骤获取:
思路是:首先在手机上选择定时开关机的日期,然后查询数据库中的数值,将得到的数值再固定到源码中。
步骤如下:
1、打开手机的设置,找到定时开关机选项
2、选中开关机的按钮为打开状态
3、选择周二和周五,开机时间选择凌晨2点,关机时间选择凌晨1点58分
4、adb shell
5、进入
cd data/data/com.android.timerswitch/databases/
6、ls 可以看到有以下两个文件
7、使用sqlite3命令查询数据库中的数据
sqlite3 timerswitch.db
8、.table查看数据库中的表
9、查询switch_templates表中的数据
select * from switch_templates;
查到的结果如下:(其中18就表示周二和周五计算出来的数值)
更多推荐
所有评论(0)