关于钉钉打卡的另一种实现思路

本文介绍了通过adb shell编写脚本实现自动钉钉打卡的详细步骤,包括使用uiautomatorview进行坐标定位,编写shell脚本,以及解决手机重启后脚本重新运行的问题。尽管需要手机root权限,但此方法具有较高的稳定性和实用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当众多的单位都在使用钉钉打卡的时候,释放的是单位领导的时间、空间和神经。马云在成功划开众多男女的钱包后,又开发出这款钉钉考勤,实在是有点太那个了,不仅让你足不出户,还能让你主动把钱包向他打开,在抓着你钱包的同时,又出来这款让上班族深恶痛绝的考勤,定位你的行踪,限制你的自由,免费为那些领导提供当年只有奸细和特务才做的工作,不是助纣为虐,至少也是狼狈为奸。你不用嫌话难听,你不信看看,单位挂得上号的领导,哪一个在钉钉考勤的名单里?可惜了那么多人才都是在助纣为虐,正是你们的大作,让上班族感觉幸福感骤然下降很多。听惯了领导在台上大讲,以单位为家,讲奉献精神,请问,为什么你要把自已的名字排除在单位团队之外?请问这个被要求有奉献精神的组织里,怎么不见你的大名?
发完牢騒再转到正题吧,钉钉软件做得真是不错,定位、联系人,待办事宜等等一应俱全。用全面、周到一点也不为过。可是人也是有事情的,不只是上下班打卡,不小心就会把这事忘脑后边了。等突然间想起来,时间已过,懊恼不已吧。想不想有一个功能帮你完成这个工作?
思路:
1、先做一个能模拟一系列手势的脚本
2、找一个定时的软件执行这个脚本
一切就OK了。可是没有这么简单的,我先后试了几款一键精灵之类的,不理想。这有多方面的原因:首先要ROOT,找了一些ROOT之类的,不仅不稳定,还给你安装上好多软件,我一贯称这种行为为流氓行为。很多著名的软件都存在这样的行为,是大流氓。大流氓有底线,小流氓没底线。其次,不能用太差的手机,运行起来也卡的很。再有,这几款都要注册,而且还会中途罢工要求加薪的,你明白的。后来也试过定时达人,虽然运行很准时,但是打卡成功率不高。没准头,有时候打卡成功,有时候就不知是什么原因了。总之都不太理想。
最近又试了一下,将手机与电脑连接,用adb shell 操作要准确很多。现在把操作过程写出来,请大家指正。
一、adb shell功能简介
adb shell 是一款用来调试的软件,(百度一下,会有很多介绍,关键是要把它存放的目录作为环境变量来处理,详细的做法也请百度)我们要用的是它的几个功能:
1.tap 点击
2.swipe划动
3.keyevent 3 手机主页
4.keyevent 4 返回
二、Uiautomatorview,具体用法请百度,我主要是用它进行各个关键点的定位和推算。首先,我把钉钉的启动图标放在了手机首页,用uiautomatorview就可以查看到它的位置信息:模坐标和纵坐标。记下这个坐标点。第二,启动钉钉,进入钉钉首页,再用Uiautomatorview找到几个关键点。进入“工作”页,你会发现钉钉人还是很牛的,把打卡的按钮做在一个页里,你用Uiautomatorview是不会找到内外勤管理坐标的。这时候,就要把思路做适当的调整了。点击消息铵钮,再用Uiautomatorview定位消息按钮的坐标。这个坐标很重要。因为同时它的横坐标是工作页中内外勤管理的横坐标,记下来吧,这个横坐标是用得上的。然后查看工作按钮的坐标,这个坐标也同样重要,因为进入打卡界面的时候,它的横坐标,都是是以它的横坐标为依据的。第三。接下来就是向个重点纵坐标的确定。这是一个比较麻烦的过程,而且由于不同手机分辨率不同,会造成打卡按钮的位置有许多差异。不过幸亏钉钉人把按钮做得较大,我们可以模糊定义纵坐标。
三、有了几个关键点,我们就可以计算钉钉打卡时的点击位置
    1.钉钉首页消息点击位置
      点击横坐标=消息横坐标+消息按钮宽度/2
      点击纵坐标=屏幕最大纵向高度-消息按钮高度/2
    2.钉钉工作点击位置
      点击横坐标=屏幕最大宽度/2 或者工作按钮宽度/2+工作按钮横坐标
      点击纵坐标=屏幕最大纵向高度-消息按钮高度/2
    3.内外勤按钮位置
      点击横坐标=消息横坐标+消息按钮宽度/2
      点击纵坐标=(屏幕最大高度-消息按钮高度)
    4.根据各单位设置打卡次数的不同,自已确定纵坐标位置,横坐标就是屏的中央位置,可参考消息页面       的模坐标。
    5.每次打卡后,都要返回手机主页面。
四、根据以上思路,选用了几款软件,脚本精灵,定时达人等类似软件,但是都不是太理想。最后还是确定用手机调试软件,ADB shell,这个从实用结果来看,稳定性还是非常高的。
五、具体用法:
    1.首先要编写打卡的shell脚本,现在给出我个人的一个脚本:
 input keyevent 3 //让手机返回主页面
 sleep 5
 input tap 135 1290 //点击钉钉app图标的位置
 sleep 10 //等待手机刷新出钉钉主页面
 input tap 540 1841 //点击钉钉工作按钮
 sleep 15 //等待钉钉调出内外勤管理页
 input tap 110 1010 //点击内外勤管理按钮
 sleep 15 //等待钉钉调出打卡页
 input tap 540 630 //点击打卡铵钮
 sleep 10 //等待钉钉返回打卡成功信息
 input keyevent 4 //返回内外勤管理页
 input keyevnet 4 //返回手机主页,等待下次打卡
     我把这个脚本放在了手机的 /mnt/sdcard/kqdk中,并将该脚本变更为可执行,已备调用。
 其它打卡位置根据自已手机的情况进行更改,然后进行命名,我的是dk01。
    2.定时打卡设置
    重点是让这个脚本一直在工作,亦是让其无休止的循环下去,每到特定时间,就去执行打卡脚本dk01.
    具体代码如下:
 while true //一直循环
 do  //循环体
 if [ “ ( d a t e +               / m n t / s d c a r d / k q d k / d k 01   f i   d o n e   其 它 时 间 的 设 定 , 可 参 照 这 个 脚 本 添 加 更 改 。 然 后 放 入 手 机 / m n t / s d c a r d / k q d k 中 , 命 名 为 m y k q d k 变 更 属 性 为 可 执

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值