思路
我用的是K30Pro旧手机,保证手机正常联网,root后做以下步骤:
- 解锁屏幕进入桌面
- 打开签到 APP
- 模拟点击 APP 中签到按钮
- 退出签到 APP
- 锁屏
准备
- root安装 Magisk/KSU 的安卓手机一部
- 安装 lsposed模块:FakScreen
- 安装 APP:MT文件管理器,Tasker, FDE.AI
- 装有 adb tools 及 Git for Windows 的 PC 一台(用来计算模拟点击坐标)
- 打开手机 USB 调试模式,并允许通过 USB 调试模拟点击
- 打开永不休眠
唤醒屏幕
在进行模拟点击前,必须保证手机屏幕是唤醒状态,不然点了也没用。网上很多人说的采用adb shell input keyevent 26
这种方法只有在亮屏时有用,相当于按下一次电源键,但熄屏状态并不起作用,所以我采用另一种办法:安装lsposed模块FakeScreen,永不休眠却不想屏幕亮着。安装这个模块后电源键只起到开关屏幕作用,按电源键后屏关了,但对于APP来说屏是亮着的,手机没有休眠.
关于电池保养
因为我是旧手机,长期插着充电器,久了电池会过充而鼓包,比较危险.
需要安装FDE.AI这个APP设置断充电量为70%, 这样充量到70% 就会自动停止充电了,低电的时候又自动充电,让电池不会过充.
当然现在很多新手机都有自带这个功能了,如果没有这个功能的话可以试试这个APP.
获得屏幕点击的位置坐标
打开签到 APP
工作日打卡
Tasker 自带的定时功能并不能满足这个需求,我们需要借助第三方 API 接口来判断当天是否为工作日,是工作日才签到。
部署项目:
https://github.com/paulzhn/chinese-holiday-api
该项目可以方便的查询当前日期或指定日期是否工作日.
tasker创建变量%Holidays
再创建一个任务,运行shell命令为:
curl https://api.gointo.icu/api/holiday?date=$(date +%Y-%m-%d)
输出存储到:%Holidays变量.
创建一个配置文件,周期执行shell命令的任务,查询当前日期是否为工作日,并赋值给%Holidays变量.
在打卡的任务里加个if条件,%Holidays值等于0时打卡.
这样就可以实现只在工作日打卡了.
另外还可以创建个一变量,用来存放一个随机值,在打卡任务里增加个等待时间为这个随机值,实现随机时间打卡.