从0到1,教你如何使用Tasker+Autojs实现自动打卡功能

简介: 从0到1,教你如何使用Tasker+Autojs实现自动打卡功能

你是否有上下班总会忘记打卡或者迟到的困扰,这篇文章将带你感受一下自动化工具+JS的魅力

首先声明:本文章不针对任何第三方软件,文章中的脚本只做学习,不做商用,侵删

准备工作:


安卓手机或模拟器,最好使用模拟器(推荐夜神模拟器安卓7的64位),因为手机条件会比较苛刻(需要root,和谷歌三件套)

Auto.js软件,或者其衍生产品AutoX.js

Tasker,中文站,原网站

需要自动执行的软件,我用的是 *人薪事

首先,咱们熟悉一下Auto.js的调试,官方文档已经写的很清楚了,我主要概述一下抓取组件调试的过程

以AutoX.js为例,VScode安装Auto.js-VSCodeExt-Fixed插件,按住ctrl+shift+p,输入auto即可进入插件的工具菜单,选择 ‘开启服务’,复制右下角服务ip及端口,就可以等待移动端连接了


1.png1.png


如果是用手机连接,需要开启:开发者工具>USB调试,模拟器则直接打开AutoXjs侧边栏的连接电脑,输入之前复制的服务ip及端口,开启调试模式


1.png1.png


打开悬浮窗,用于应用控件的抓取


1.png1.png


以Tasker为例,点击悬浮窗的 ‘布局分析’ ,选择布局范围分析,AutoXjs会将当前页面中的可操作控件列举出来,此时通过js代码进行事件操作即可实现自动化控制


1.png1.png1.png


以搜索框为例,我们实现一个 模拟搜索 的诉求

1.png


根据官方文档,我们可以简单实现该功能

const appName = "Tasker",
  getSearchBtn = () => desc("搜索 Tasker"), //搜索按钮,desc文本查找控件
  getSearchInput = () => id("filter_text"), //输入框
  startSearchBtn = () => id("search"), //开始查询按钮
  str = "打卡";
console.log("launchApp:" + appName, launchApp(appName)); //打开Tasker app
console.log("getSearchBtn", getElem(getSearchBtn()).click()); //点击搜索按钮
console.log("getSearchInput", getElem(getSearchInput()).setText(str)); //输入关键字
console.log("startSearchBtn", getElem(startSearchBtn()).click()); //点击开始搜索按钮
function getElem(ele) {
  return ele.findOne();
}

效果如下:

1.png

接着,咱们照葫芦画瓢,参照文档使用模拟动作实现操控其他软件的功能,比如每次执行脚本时,都会自动在打卡软件中打卡(源码放在结尾)


image.png


AutoX.js已经帮助我们实现了半自动打卡,距离我们的目标又近了一步


下面我们需要使用Tasker配合AutoX.js达到触发某(些)条件时打卡即可


打开tasker,新建任务test


1.gif


在任务编辑中新建系统操作>发送意图,这里我新建了一个android.intent.action.tasker的广播,用于和AutoX交互


1.png1.png1.png


我们在AutoX中新建一个脚本触发事件,当有应用触发android.intent.action.tasker时,执行这个打卡脚本


1.png1.png1.png1.png


然后我们在Tasker中运行这个任务用来触发AutoX执行脚本


至此,使用Tasker连接AutoX这块已经完成,接下来就是触发任务的条件了

既然是自动打卡,肯定与时间地点有关系。所以,我们在Tasker的配置文件中新建配置,配置时间,和地点(需要谷歌三件套),并选择任务,当达到特定时间地点时,Tasker就会触发打卡脚本


1.png


写在最后:


使用Tasker+Autojs实现打卡固然好用,但是其对手机要求较高,如果你的手机恰好root,并装了谷歌三件套,使用起来会比较方便。其他同学推荐使用安卓模拟器实现。


源码:myCode: 一些小案例 - Gitee.com


相关文章
|
存储 缓存 文件存储
如何保证分布式文件系统的数据一致性
分布式文件系统需要向上层应用提供透明的客户端缓存,从而缓解网络延时现象,更好地支持客户端性能水平扩展,同时也降低对文件服务器的访问压力。当考虑客户端缓存的时候,由于在客户端上引入了多个本地数据副本(Replica),就相应地需要提供客户端对数据访问的全局数据一致性。
33076 80
如何保证分布式文件系统的数据一致性
|
前端开发 容器
HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第8章FlexBox布局(上)
HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第8章FlexBox布局
17818 24
|
设计模式 存储 监控
设计模式(C++版)
看懂UML类图和时序图30分钟学会UML类图设计原则单一职责原则定义:单一职责原则,所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。bad case:IPhone类承担了协议管理(Dial、HangUp)、数据传送(Chat)。good case:里式替换原则定义:里氏代换原则(Liskov 
36801 22
设计模式(C++版)
|
存储 编译器 C语言
抽丝剥茧C语言(初阶 下)(下)
抽丝剥茧C语言(初阶 下)
|
机器学习/深度学习 人工智能 自然语言处理
带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性
带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性
24873 15
|
机器学习/深度学习 弹性计算 监控
重生之---我测阿里云U1实例(通用算力型)
阿里云产品全线降价的一力作,2023年4月阿里云推出新款通用算力型ECS云服务器Universal实例,该款服务器的真实表现如何?让我先测为敬!
36786 15
重生之---我测阿里云U1实例(通用算力型)
|
SQL 存储 弹性计算
Redis性能高30%,阿里云倚天ECS性能摸底和迁移实践
Redis在倚天ECS环境下与同规格的基于 x86 的 ECS 实例相比,Redis 部署在基于 Yitian 710 的 ECS 上可获得高达 30% 的吞吐量优势。成本方面基于倚天710的G8y实例售价比G7实例低23%,总性价比提高50%;按照相同算法,相对G8a,性价比为1.4倍左右。
|
存储 算法 Java
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的限流器RateLimiter功能服务
随着互联网的快速发展,越来越多的应用程序需要处理大量的请求。如果没有限制,这些请求可能会导致应用程序崩溃或变得不可用。因此,限流器是一种非常重要的技术,可以帮助应用程序控制请求的数量和速率,以保持稳定和可靠的运行。
29925 52

热门文章

最新文章