前言

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

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

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

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

准备工作

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


ADB命令方式

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


通过命令获取到 钉钉的包名: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() {@Overridepublic 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();}

实现效果及功能演示

等一下这个gif图 手机抓拍 时间有点长 大概1分钟后 是有跳转逻辑 和功能实现的

该脚本支持 企业微信和钉钉急速打卡模式 再设置了 打卡时间和打卡模式以后 到了指定时间

脚本会自动打开应用跳转指定打卡APP(钉钉或企业微信)

总结

在帮助大家同时 自己又学习了知识 何乐而不为呢?啊哈哈哈

Android 实现企业微信自动打卡任务同时支持钉钉急速打卡模式相关推荐

  1. 薅羊毛!企业微信自动加好友工具免费使用机会!

    从早到晚不停地发朋友圈,回复却寥寥无几?捧着手机不断刷新消息,却没有客户找你?明明已经很努力,可却总与客户失之交臂?谁都不想被动等待,可到底该如何跟进?如何营销? 很多营销团队都在思考客流来源和转化率 ...

  2. 启善企业微信自动加好友助手教程

    一.打开企业微信,依次点击"通讯录"-"新的客户"-"添加" 二.打开<启善企业微信自动加好友助手>,"导入手机号&q ...

  3. 【转】企业微信自动打卡设置

    企业微信没有打卡功能怎么办 现在企业微信是很多公司的首选的办公软件,其中打卡是员工不可缺少的一项任务,那么在企业微信上怎么打卡呢? 打卡功能是在企业微信工作台中使用的,如果员工打开企业微信手机端进入工 ...

  4. 实现企业微信自动登录

    1.要想实现企业微信自动登录,首先在自己本地进行测试的时候,需要把映射自己本机域名,因为微信后台可信域名对于ip格式,本地域名的格式是不支持的 2.在自己本地进行调试的时候,首先你本人必须是当前应用的 ...

  5. Hamibot企业微信自动打卡签到——仅作记录

    Hamibot是基于Auto.js开发且开发者与用户均可免费使用.在写下这些文字时,看到有Auto.js Pro产品(目前并未了解Pro的功能). 如果你正想使用Hamibot开发一款出自己的脚本,建 ...

  6. 企业微信自动加人机器人

    <企业微信自动加人机器人 - 帮助文档> 发现任何异常, 请分析日志文件 操作流程 确保检测到, 启动时候自动检测, 检测不到手动点击检查按钮 管理 参数配置: 1.每条数据操作间隔, 单 ...

  7. Python实现钉钉/企业微信自动打卡

    每天急匆匆赶地铁上班的时候总会一不小心就会忘记打卡,尤其是软件打卡,那有没有什么办法可以解决忘打卡的问题呢?今天给大家推荐一下一款神器,利用Python实现定时自动打卡. 1 前期工具准备 不用说的P ...

  8. 工作党福利来了!Python实现钉钉/企业微信自动打卡

    每天急匆匆赶地铁上班的时候总会一不小心就会忘记打卡,尤其是软件打卡,那有没有什么办法可以解决忘打卡的问题呢?今天给大家推荐一下一款神器,利用Python实现定时自动打卡. 1 前期工具准备 不用说的P ...

  9. 企业微信自动打卡脚本

    写了一个自动企业微信打卡的dos脚本(自己要在手机上开启自动打开,新设备养几天就变常用设备了),搞个定时任务每天早上执行一下就行,废话不多说,上脚本内容 f: cd adb adb shell inp ...

最新文章

  1. Spark集群搭建【Spark+Hadoop+Scala+Zookeeper】
  2. 虚拟机Ping不通主机解决
  3. Unknown host ‘services.gradle.org‘ 解决方法
  4. 方法对象java final关键字的用法
  5. android crop 大图,Android-CropView
  6. android 观察者,Android开发实现简单的观察者与被观察者示例
  7. Kafka消息格式中的变长字段(Varints)
  8. spark集群配置以及java操作spark小demo
  9. HRBUST 1473 教主的遗产【状态压缩】
  10. 服务器用户设置备份,用户配置文件状态变成“备份”
  11. 安徽工程大学专升本计算机科学与技术专业,2015年安徽工程大学机电学院的计算机科学与技术专业怎么样...
  12. layui select下拉框选项不显示
  13. python生成数字证书_makecert 制作数字证书
  14. python ssim代码
  15. 缺氧游戏 游戏泉修改_自己用的
  16. C语言游戏: 俄罗斯方块(Tetris)@兼谈程序优化方法 [源码+exe下载]
  17. 央联众商理财公司,我个人的理财观!
  18. 单片机人体感应灯c语言,红外人体感应灯单片机方案
  19. OSChina 周二乱弹 —— 同在一室不相亲,早晚相见不相识
  20. 开发掌握什么技术才不会被淘汰

热门文章

  1. java设计模式之策略模式应用:订单手续费计算
  2. Linux内核——cli()和sti()
  3. Elastic:我应该使用 Logstash 或是 Elasticsearch ingest 节点?
  4. H.264/AVC标准参考软件 JM
  5. ubuntu 20.04.3 安装教程(本人一步一步安装记录...)
  6. uniapp 顶部绝对定位
  7. JOJ 2453 Candy
  8. [lua] 用lua实现扑克游戏发牌的逻辑代码
  9. java编程基础笔记_Java编程基础阶段笔记 day01 Java语言概述
  10. 哲学家问题(图形化实现)