Android 实现企业微信自动打卡任务同时支持钉钉急速打卡模式
前言
之前公司一直是弹性工作制 以工作任务为目标 自由上下班
日子过的不亦乐乎
自从人事来了以后 就颁布了第一条法令
看到这个无疑的痛苦的 对于一个几年没有打卡散人来说!!!
同时公司的财务小姐姐和其他同事也硬邀 工程师来开发一个脚本任务 来执行自动打卡
听起来好像还不错
为了大家的福利 说干就撸起袖子
准备工作
要先完成app之间的跳转
首先先拿到企业微信的包名
和钉钉的包名
这个无论你是adb命令实现 还是百度直接找 都很方便
ADB命令方式
- 依旧数据线连接手机,注意都是调试模式哈,不然电脑无权访问手机
- 电脑端Crtl+R 输入cmd 回车
- 输入 adb devices 检验是否成功连接手机
- 输入 adb shell 进入手机的shell
- 输入 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 实现企业微信自动打卡任务同时支持钉钉急速打卡模式相关推荐
- 薅羊毛!企业微信自动加好友工具免费使用机会!
从早到晚不停地发朋友圈,回复却寥寥无几?捧着手机不断刷新消息,却没有客户找你?明明已经很努力,可却总与客户失之交臂?谁都不想被动等待,可到底该如何跟进?如何营销? 很多营销团队都在思考客流来源和转化率 ...
- 启善企业微信自动加好友助手教程
一.打开企业微信,依次点击"通讯录"-"新的客户"-"添加" 二.打开<启善企业微信自动加好友助手>,"导入手机号&q ...
- 【转】企业微信自动打卡设置
企业微信没有打卡功能怎么办 现在企业微信是很多公司的首选的办公软件,其中打卡是员工不可缺少的一项任务,那么在企业微信上怎么打卡呢? 打卡功能是在企业微信工作台中使用的,如果员工打开企业微信手机端进入工 ...
- 实现企业微信自动登录
1.要想实现企业微信自动登录,首先在自己本地进行测试的时候,需要把映射自己本机域名,因为微信后台可信域名对于ip格式,本地域名的格式是不支持的 2.在自己本地进行调试的时候,首先你本人必须是当前应用的 ...
- Hamibot企业微信自动打卡签到——仅作记录
Hamibot是基于Auto.js开发且开发者与用户均可免费使用.在写下这些文字时,看到有Auto.js Pro产品(目前并未了解Pro的功能). 如果你正想使用Hamibot开发一款出自己的脚本,建 ...
- 企业微信自动加人机器人
<企业微信自动加人机器人 - 帮助文档> 发现任何异常, 请分析日志文件 操作流程 确保检测到, 启动时候自动检测, 检测不到手动点击检查按钮 管理 参数配置: 1.每条数据操作间隔, 单 ...
- Python实现钉钉/企业微信自动打卡
每天急匆匆赶地铁上班的时候总会一不小心就会忘记打卡,尤其是软件打卡,那有没有什么办法可以解决忘打卡的问题呢?今天给大家推荐一下一款神器,利用Python实现定时自动打卡. 1 前期工具准备 不用说的P ...
- 工作党福利来了!Python实现钉钉/企业微信自动打卡
每天急匆匆赶地铁上班的时候总会一不小心就会忘记打卡,尤其是软件打卡,那有没有什么办法可以解决忘打卡的问题呢?今天给大家推荐一下一款神器,利用Python实现定时自动打卡. 1 前期工具准备 不用说的P ...
- 企业微信自动打卡脚本
写了一个自动企业微信打卡的dos脚本(自己要在手机上开启自动打开,新设备养几天就变常用设备了),搞个定时任务每天早上执行一下就行,废话不多说,上脚本内容 f: cd adb adb shell inp ...
最新文章
- Spark集群搭建【Spark+Hadoop+Scala+Zookeeper】
- 虚拟机Ping不通主机解决
- Unknown host ‘services.gradle.org‘ 解决方法
- 方法对象java final关键字的用法
- android crop 大图,Android-CropView
- android 观察者,Android开发实现简单的观察者与被观察者示例
- Kafka消息格式中的变长字段(Varints)
- spark集群配置以及java操作spark小demo
- HRBUST 1473 教主的遗产【状态压缩】
- 服务器用户设置备份,用户配置文件状态变成“备份”
- 安徽工程大学专升本计算机科学与技术专业,2015年安徽工程大学机电学院的计算机科学与技术专业怎么样...
- layui select下拉框选项不显示
- python生成数字证书_makecert 制作数字证书
- python ssim代码
- 缺氧游戏 游戏泉修改_自己用的
- C语言游戏: 俄罗斯方块(Tetris)@兼谈程序优化方法 [源码+exe下载]
- 央联众商理财公司,我个人的理财观!
- 单片机人体感应灯c语言,红外人体感应灯单片机方案
- OSChina 周二乱弹 —— 同在一室不相亲,早晚相见不相识
- 开发掌握什么技术才不会被淘汰
热门文章
- java设计模式之策略模式应用:订单手续费计算
- Linux内核——cli()和sti()
- Elastic:我应该使用 Logstash 或是 Elasticsearch ingest 节点?
- H.264/AVC标准参考软件 JM
- ubuntu 20.04.3 安装教程(本人一步一步安装记录...)
- uniapp 顶部绝对定位
- JOJ 2453 Candy
- [lua] 用lua实现扑克游戏发牌的逻辑代码
- java编程基础笔记_Java编程基础阶段笔记 day01 Java语言概述
- 哲学家问题(图形化实现)