吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 26091|回复: 369
收起左侧

[Android 原创] 实现企业微信自动打卡任务同时支持钉钉急速打卡模式

    [复制链接]
lyudony 发表于 2021-7-22 10:57

前言

之前公司一直是弹性工作制 以工作任务为目标 自由上下班
日子过的不亦乐乎

自从人事来了以后 就颁布了第一条法令
1

看到这个无疑的痛苦的 对于一个几年没有打卡散人来说!!!
同时公司的财务小姐姐和其他同事也硬邀 工程师来开发一个脚本任务 来执行自动打卡

听起来好像还不错
为了大家的福利 说干就撸起袖子
1

准备工作

要先完成app之间的跳转
首先先拿到企业微信的包名钉钉的包名
这个无论你是adb命令实现 还是百度直接找 都很方便


ADB命令方式

  1. 依旧数据线连接手机,注意都是调试模式哈,不然电脑无权访问手机
  2. 电脑端Crtl+R  输入cmd 回车
  3. 输入 adb devices  检验是否成功连接手机
  4. 输入 adb shell  进入手机的shell
  5. 输入 pm list packages  显示所有应用包名

1
通过命令获取到 钉钉的包名:com.alibaba.android.rimet
通过命令获取到 企业微信的包名:com.tencent.wework

也可以直接百度搜
在这里插入图片描述


拿到包名以后要做的任务 就是启动定时器完成应用跳转 达到唤醒应用的效果
因为企业微信和钉钉急速打卡只要打开app在指定的打卡范围内就可以自动打卡

ok 我们已知这个条件以后 就很方便写程序了

实现流程

启动前台服务

 //启动服务
Intent intentService = new Intent(MainActivity.this, AutomaticTaskService.class);
startService(intentService);

不断的刷新通知任务

 NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
        builder.setSmallIcon(R.mipmap.timer_task);
        builder.setContentTitle("新消息").setContentText("这是一条定时任务");       
        startForeground(1, builder.build());

在服务中起了一个定时的线程来根据设置的时间跳转指定包名的app

   new Thread() {
            @Override
            public void run() {
                super.run();
                while (isRun) {
                    //你需要执行的任务
                    try {
                        Thread.sleep(50000);
                    } catch (InterruptedException es) {
                        es.printStackTrace();
                    }

                    //实例化SharedPreferences对象(第一步)
                    SharedPreferences mySharedPreferences = getSharedPreferences("shared", Activity.MODE_PRIVATE);

                    String starTime = mySharedPreferences.getString("startTime", "");
                    String endTime = mySharedPreferences.getString("endTime", "");

                    Log.e(TAG, " starTime -------- " + starTime);
                    Log.e(TAG, " endTime  --------- " + endTime);

                    String strTime = getSystemTime() + "";
                    strTime = strTime.substring(0, 5);
                    Log.e(TAG, " 系统时间 --------- " + strTime);
                    if (strTime.equals(starTime)) {
                        //设置了上班打卡时间
                        ImplementUtils.openTask(getBaseContext());
                    } else if (strTime.equals(endTime)) {
                        //设置了下班打卡时间
                        ImplementUtils.openTask(getBaseContext());
                    }
                }
            }
        }.start();     
        //走OnDestory停止的服务,系统保留了service的onStartCommand方法中的变量,等待系统重启此服务
        return START_STICKY;
    }

应用跳转那块的代码都是死的
在这里插入图片描述

        //设置意图
        Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
        resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
        if (packageInfo != null) {
            resolveIntent.setPackage(packageInfo.packageName);
        }
        List<ResolveInfo> apps = packageManager.queryIntentActivities(resolveIntent, 0);
        ResolveInfo resolveInfo = apps.iterator().next();
        if (resolveInfo != null && packageInfo != null) {
            String className = resolveInfo.activityInfo.name;
            Intent intent = new Intent(Intent.ACTION_MAIN);
            intent.addCategory(Intent.CATEGORY_LAUNCHER);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            Log.e(TAG, "packageName ------------" + packageInfo.packageName);
            ComponentName cn = new ComponentName(packageInfo.packageName, className);
            intent.setComponent(cn);
            PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
            pendingIntent.send();
         }

实现效果

1

总结

在帮助大家同时 自己又学习了知识 何乐而不为呢?啊哈哈哈
在这里插入图片描述

免费评分

参与人数 37吾爱币 +39 热心值 +29 收起 理由
cpgqy + 1 + 1 收藏了,希望可以增加个范围
Zhashutiao + 1 谢谢@Thanks!
rw2022 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
zhuoqiyou + 1 确实流批!
司徒呆 + 1 能否设置上午上下班,下午上下班这样的打卡时间设定
hyrzmfjsml + 1 + 1 谢谢@Thanks!
ysypnbh + 1 已经处理,感谢您对吾爱破解论坛的支持!
amethrade + 1 + 1 用心讨论,共获提升!
undola + 1 + 1 我很赞同!
haibin163 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
轻虹绕日飞 + 1 + 1 能否设置上午上下班,下午上下班这样的打卡时间设定
YiYarn + 1 + 1 我很赞同!
疯萧萧 + 1 + 1 我很赞同!
柳泉居士 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
火焰山527 + 1 + 1 谢谢@Thanks!
无奈16 + 1 + 1 谢谢@Thanks!
PRND + 1 + 1 谢谢@Thanks!
jysxs + 1 谢谢@Thanks!
北中鱼 + 1 谢谢@Thanks!
大口吃土 + 1 + 1 热心回复!
qtfreet00 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
浮生丶梦滥 + 1 + 1 谢谢@Thanks!
heiheixue3344 + 1 我很赞同!
fengbuerzi + 1 + 1 谢谢@Thanks!
杨柯 + 1 我很赞同!
fqr2009 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
tove + 1 + 1 每天打卡时间会自动不规则偏移么
monsterwolf + 1 + 1 谢谢@Thanks!
358463121 + 2 + 1 谢谢@Thanks!
LittleFlyDragon + 1 我很赞同!
Rabbit64 + 1 我很赞同!
YellowFish + 1 我很赞同!
zoeux + 1 + 1 期待成品
nmy124 + 1 + 1 谢谢@Thanks!
yunji + 1 鼓励转贴优秀软件安全工具和文档!
晓风残月祭 + 1 + 1 我很赞同!
Wusheng1210 + 1 期待成品!不过别让DING和Teng晓得

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| lyudony 发表于 2021-7-23 09:07
经过几天的测试和修复bug  
一个1mb的apk诞生了
今天早上8.35打的卡 而我9点才来公司
哈哈啊哈
 楼主| lyudony 发表于 2021-7-23 09:09
 楼主| lyudony 发表于 2021-7-23 09:14
本帖最后由 lyudony 于 2021-8-6 13:53 编辑

福利来了
https://wws.lanzoui.com/iRK8esaovdg
密码:52pj


更新内容:
支持android手机息屏后唤醒屏幕打卡
打完卡后手机自动息屏即可


要打卡的手机 不要打开指纹 数字 手势等锁屏 就正常息屏 是没问题的

if (strTime.equals(starTime)) {
//设置了上班打卡时间
ImplementUtils.openTask(getBaseContext());
wakeUpAndUnlock(context);
} else if (strTime.equals(endTime)) {
//设置了下班打卡时间
ImplementUtils.openTask(getBaseContext());
wakeUpAndUnlock(context);
} else if (strTime.equals("10:00")) {
//设置断开连接
Log.e(TAG, "执行了 断开连接");
SilentUtils.launchApp(getApplication().getBaseContext(), "model.com.app.lyudony");
wakeUpAndUnlock(context);
} else if (strTime.equals("22:00")) {
//设置断开连接
Log.e(TAG, "执行了 断开连接");
SilentUtils.launchApp(getApplication().getBaseContext(), "model.com.app.lyudony");
wakeUpAndUnlock(context);
}

免费评分

参与人数 2吾爱币 +2 收起 理由
qixier + 1 谢谢@Thanks!
mmp211 + 1 我很赞同!

查看全部评分

 楼主| lyudony 发表于 2021-7-27 17:34
本帖最后由 lyudony 于 2021-8-6 13:54 编辑
浮生丶梦滥 发表于 2021-7-27 17:16
昨晚下载试过了,好像不行,设置好时间之后,到点了没有反应

https://wws.lanzoui.com/iRK8esaovdg
密码:52pj


更新内容:
支持android手机息屏后唤醒屏幕打卡
打完卡后手机自动息屏即可


要打卡的手机 不要打开指纹 数字 手势等锁屏 就正常息屏 是没问题的
 楼主| lyudony 发表于 2021-7-27 18:49
三张图说明一切
目标
完成

设置的时间

设置的时间

打卡的结果

打卡的结果

打卡的流程

打卡的流程
 楼主| lyudony 发表于 2021-7-31 18:01
实现效果图
auto.gif
 楼主| lyudony 发表于 2022-3-28 11:44
感谢大家支持!
我已将源码分析
具体地址 https://www.52pojie.cn/thread-1612172-1-1.html  
如有帮助  请给个star ~
 楼主| lyudony 发表于 2022-3-28 13:41
代码开源地址:https://github.com/lvlife/AutomaticTask
Bakura 发表于 2021-7-22 17:28
领悟者的涂鸦笔 发表于 2021-7-22 15:58
人事专门干不是人干的事。
人事没有生产力,只能通过得罪人来体现自己的存在价值

因为人事是站在老板的立场的,有些人时间长了,潜移默化也认为自己是老板了吧,
zitcer 发表于 2021-7-23 19:40
能设置一个时间段不?如果天天在同一个时间点打卡可不太好吧。
 楼主| lyudony 发表于 2021-9-6 09:18
pangdundun 发表于 2021-9-5 11:22
旧手机专门放公司自动打卡?竟然还有这操作,明白你思路了

感谢支持
Faithful 发表于 2021-7-22 21:37
现代人不是机不离手么,打个卡还要自动?倒是想知道好友的实时位置(大概区域),上线时在头像旁边显示,能不能做到呢
 楼主| lyudony 发表于 2022-3-28 13:40
ming1993vip 发表于 2022-3-28 12:03
被平台老大禁止了

https://github.com/lvlife/AutomaticTask
ming1993vip 发表于 2022-3-28 12:03
lyudony 发表于 2022-3-28 11:46
你好
我已将源码分析
具体地址 https://www.52pojie.cn/thread-1612172-1-1.html  

被平台老大禁止了
 楼主| lyudony 发表于 2021-12-24 09:21
ydydq 发表于 2021-12-22 09:14
我用的以前的老手机。取消了锁屏密码。到点了。也不自动打卡啊。华为荣耀3c

息屏以后,也是锁屏状态,只是解锁不需要任何手势,密码,指纹而已,这种情况大概率进不了系统桌面,也就无法使用。
解决方法:打开手机开发者模式(百度自己手机的开发者模式)----关闭锁屏(点亮屏幕直接进入系统),相当于滑动解屏这个取消掉。然后就可以完美息屏定时打卡啦。
风乘云集水浒卡 发表于 2021-7-22 15:45
您那串代码是自己需要做个app吗?
bachelor66 发表于 2021-7-22 15:45
挺漂亮的,有成品吗?还可以做成输入任意包名的APP就更好了。
表哥 发表于 2021-7-22 15:52
期待成品
Do_zh 发表于 2021-7-22 16:04
钉钉不是有个自动打卡?为啥还要做一个 。
haile319 发表于 2021-7-22 16:22
需要更详细的步骤,另外有成品多好,能自由换签到的包名
一如既往。 发表于 2021-7-22 16:41
看起来像java,但是我却写不出来的样子
xp8812 发表于 2021-7-22 16:52
请问,手机熄屏还能唤醒吗
mynigel 发表于 2021-7-22 16:57
期待成品,人事真真无语。
火车不出轨 发表于 2021-7-22 17:18
完美啊   能不能 发下成品啊  看不懂啊
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-25 17:40

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表