当众多的单位都在使用钉钉打卡的时候,释放的是单位领导的时间、空间和神经。马云在成功划开众多男女的钱包后,又开发出这款钉钉考勤,实在是有点太那个了,不仅让你足不出户,还能让你主动把钱包向他打开,在抓着你钱包的同时,又出来这款让上班族深恶痛绝的考勤,定位你的行踪,限制你的自由,免费为那些领导提供当年只有奸细和特务才做的工作,不是助纣为虐,至少也是狼狈为奸。你不用嫌话难听,你不信看看,单位挂得上号的领导,哪一个在钉钉考勤的名单里?可惜了那么多人才都是在助纣为虐,正是你们的大作,让上班族感觉幸福感骤然下降很多。听惯了领导在台上大讲,以单位为家,讲奉献精神,请问,为什么你要把自已的名字排除在单位团队之外?请问这个被要求有奉献精神的组织里,怎么不见你的大名?
发完牢騒再转到正题吧,钉钉软件做得真是不错,定位、联系人,待办事宜等等一应俱全。用全面、周到一点也不为过。可是人也是有事情的,不只是上下班打卡,不小心就会把这事忘脑后边了。等突然间想起来,时间已过,懊恼不已吧。想不想有一个功能帮你完成这个工作?
思路:
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 [ “
(date +%Y%m%d-%H%M)”,这样就可以通过cat kq.out确定你的脚本到定时时间后,是否一直在执行。
5.最后还要说一说,手机长时间使用,由于各种原因,不得不进行重启,这时候,就不得不将手机再连接微机,用adb shell重启脚本。为了方便各位,再提供一款手机APP,Gscript lite,很是方便,安装完成后,根据说明(自行百度)将runningkq.sh再运行起来就行。
6.再啰嗦一下,为了保证打卡成功,我还在微机上也进行了定时任务操作,这也上一个补充手段,编一段批处理,到时也会执行。不过,手机是一直和微机连着的,而且是允许调试。这儿就露一下这个批处理:
adb shell sh /mnt/sdcard/kqdk/kq01
简单吧?
六、虽然是还算能完成考勤目的,但是的机还是必须要root,还是有一些不成熟啊,请懂android手机和shell的大神帮忙。如何才能保证root的稳定性,或者怎样才能让shell不受root的限制。手机能搜到很多Wifi热点,怎么用Shell命令,连接指定的热点。请大神们赐教。
关于钉钉打卡的另一种实现思路
猜你喜欢
转载自blog.csdn.net/qq_41735378/article/details/85338343
今日推荐
周排行