4

Tasker 根据日出日落自动化暗色模式(以一加为例)

 2 years ago
source link: https://blog.ichr.me/post/oneplus-auto-darkmode/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

首先要说明,H2OS 11、OxygenOS 11 开始便支持自动化暗色模式。尽管这个需求已经提了很久,但官方总算是加上了。一加 8 系列已经获得更新,7 系列用户据说 2020 年底便可吃上,再之前的就不敢乱预测了。

所以,如果你是一加 7 系列、8系列的用户,且不是急迫想要自动暗色模式这个功能,大可关闭此页面。如果十分需要这个功能,或者对自己的机型究竟何时能够适配新系统没底的话,不妨往下看看。本文就介绍借助 Tasker 实现自动化暗色模式。

Tasker 机制

简单来说,Tasker 是一款自动化工具。和 IFTTT 类似,Tasker 也遵循如果满足条件则执行任务(IF This Then That)。你可以在 Google Play 上以 3.49 美元价格买断 Tasker。

而本次自动化暗色模式思路也类似:

  • 条件
    • 特定时间段
    • 日出、日落
  • 任务
    • 打开暗色模式
    • 打开护眼模式

定时开关暗色模式

从简单的开始,下午 18:30 自动打开暗色模式、早上 6:30 自动关闭暗色模式。

打开 Tasker,新建一个配置文件,触发条件选择「时间」。根据需求,这里将触发时间设置为 从 18:30

Tasker新建时间触发任务

接下来,配置满足触发条件时需要执行的任务。例如这里是「开启暗色模式」与「开启护眼模式」。

新建任务,名称随意。然后点击任务编辑页面右下角的 + 加号添加任务,选择「显示」。

Tasker开启暗色、护眼模式

需要注意的是,这里可以不需要 Root 权限

但是嘛,一加不就是拿来折腾和刷机的。你可以参考 XDA 上的 Magisk 通用教程 或者 Sukka 写的 一加 OnePlus 7 刷入氧 OS、TWRP、Magisk (Root)(同样适用于大部分一加机型)获取手机 Root 权限。

如果你执意不 Root 机器,也可以通过 ADB 命令获取到相应权限。但是需要一台安装了 ADB / Fastboot 工具包(Google SDK Platform)的电脑,且这种方法获得的权限在手机重启后会失效。

手机端开启 USB 调试,使用数据线连接电脑,在电脑命令行执行:

./adb shell pm grant net.dinglisch.android.taskerm android.permission.WRITE_SECURE_SETTINGS

授予 Tasker 适当权限后,一个简单的自动化暗色模式脚本就已经完成了。

根据日出、日落控制暗色模式

其实,一加系统已经自带根据日出、日落控制夜间模式,但「夜间模式」不过是一般理解的「护眼模式」。而真正的暗色模式甚至连按时开启都没有,就更别说根据日出、日落控制了。

回过来,上述根据时间控制暗色模式的机制存在些许缺陷——即便在同一地区,夏季和冬季的光照时间也可能有好几个小时的差异。

Tasker 已经给出一份 计算日出、日落时间的配置文件。它包含两个文件:核心 JavaScript 部件与配置文件。将 JavaScript 文件下载至手机 Tasker/JavaScript 目录中(如果在使用「存储空间隔离」之类的 App,请将文件放入正确位置);下载配置文件到任意位置,打开方式「使用 Tasker 导入」。

日出日落时刻获取

这样你就可以在时间触发条件中使用 %SUNSET%SUNRISE 变量来调用日出、日落时间。最好将 sunriseset 任务中的第 6、7、8 个步骤都删掉,否则在执行的时候会引入弹窗。

修改主题样式

一加系统有个很不人性化的地方,即便开启「暗色模式」,系统主题却不会切换到「暗色样式」。要在个性化设置中手动切换。

Oneplus系统主题

这其实对于使用 OxygenOS、刷入完整 GApps 的我来说其实还好,因为谷歌应用套件大多都内置了暗色主题样式,只由「暗色模式」选项控制,平时最多也就一个「设置」系统应用会晃瞎双眼。

但如果是 H2OS 用户,平时较为依赖系统内置应用,那可能就比较难受了——电话、信息、备忘录,这些系统内置 App 统统会以系统主题展示,切换暗色模式后依然是亮色主题。

倒也不是完全没办法,可以借助 Tasker 的「查找」功能,监视到切换主题所修改的状态后跑一个 Shell 手动处理便是了。

Tasker监视修改状态

这里我是直接给予了 Root 权限运行脚本的,具体 ADB 如何获取权限不是很清楚,就不自作聪明展开了。

一加一直以来以「轻」、「快」标榜自己。所以相较于其他「万基米」的国内定制系统而言,氢 OS、氧 OS 确实更贴近原生安卓。一加也是为数不多海外市场被中国市场还好的本地厂商。

但是为了所谓「可玩性」,一加独立出个性化主题供大家玩耍,可以修改图标、修改样式、修改主题,却忽略了暗色模式下本应使用暗色主题这一理所当然的事情,从而使尝试自己实现自动化暗色模式的用户更加为难、操作门槛更高。

但从营销的角度来看,这或许又是个让大家期待 H2OS 11、OxygenOS 11 的理由?


参考链接


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK