广告
返回顶部
首页 > 资讯 > 移动开发 >Android 实现钉钉自动打卡功能
  • 769
分享到

Android 实现钉钉自动打卡功能

2024-04-02 19:04:59 769人浏览 八月长安
摘要

目录提前准备自动打开防止熄屏打开钉钉,签到后返回随机时间提前准备 首先我们需要一直不用的Android手机,插上公司的电源。下载安装钉钉并设置为极速打卡。 自动打开 我们只需要

提前准备

首先我们需要一直不用的Android手机,插上公司的电源。下载安装钉钉并设置为极速打卡。

自动打开

我们只需要启动一个服务,定时打开钉钉应用后再返回即可。

防止熄屏

这华为手机并没有永不息屏的选项,所以我们需要设置一下防止自动息屏。


  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // 设置不自动息屏
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    setContentView(R.layout.activity_main);
  }

打开钉钉,签到后返回

核心程序



  public void openApplication(String packageName) {
    PackageManager packageManager = getPackageManager();
    PackageInfo pi = null;
    try {
      pi = packageManager.getPackageInfo(packageName, 0);
    } catch (PackageManager.NameNotFoundException e) {
    }
    Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
    resolveIntent.addCateGory(Intent.CATEGORY_LAUNCHER);
    resolveIntent.setPackage(pi.packageName);
    List<ResolveInfo> apps = packageManager.queryIntentActivities(resolveIntent, 0);
    ResolveInfo resolveInfo = apps.iterator().next();
    if (resolveInfo != 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);
      ComponentName cn = new ComponentName(packageName, className);
      intent.setComponent(cn);
      startActivity(intent);
    }
  }
  • 打开cmd查找钉钉的包名

adb devices

adb shell

pm list package | grep alibaba 查找阿里巴巴相关的所有包名,也可以直接pm list package查找所有包名


// 打开钉钉
String packageName = "com.alibaba.android.rimet";
          openApplication(packageName);

// 延迟2s,自动打开
try {
            Thread.sleep(2000); 
          } catch (InterruptedException e) {
            e.printStackTrace();
          }

// 返回自动打卡app
String packageNameNew = "com.example.dingding";
          openApplication(packageNameNew);

创建一个service来进行自动打卡,使用java的cron4j库来执行定时任务,使用可以参见以前的博客。JFinal用cron4j执行定时任务

  • cron4j.jar下载地址

public class DingService extends Service {

  private final String TAG = "DingService";
  
  @Override
  public IBinder onBind(Intent intent) {
    return null;
  }

  @Override
  public void onCreate() {
    super.onCreate();

    Log.e(TAG, "Service Start!");

    ClockThread ct = new ClockThread();
    ct.start();

  }

  @Override
  public int onStartCommand(Intent intent, int flags, int startId) {
    return super.onStartCommand(intent, flags, startId);
  }

  @Override
  public void onDestroy() {
    super.onDestroy();
  }

  
  public void openApplication(String packageName) {...}

  public class ClockThread extends Thread {

    public void run() {

      Scheduler scheduler = new Scheduler();
      
      //设置打开时间为工作日的 7:50,11:50,13:50,17:50
      scheduler.schedule("50 7,11,13,17 * * mon,tue,wed,thu,fri", new Thread() {
        @Override
        public void run() {

          String packageName = "com.alibaba.android.rimet";
          openApplication(packageName);

          try {
            Thread.sleep(2000); 
          } catch (InterruptedException e) {
            e.printStackTrace();
          }

          String packageNameNew = "com.example.dingding";
          openApplication(packageNameNew);

        }
      });

      scheduler.start();

    }

  }
}

最后在MainActivity中启动服务即可。

随机时间

为了让打卡更加真实,每天的打卡时间尽可能尽量不一样。我们用一个Scheduler(调度任务)每天在固定时间如每天早上6点,创建四个时间随机的调度任务来完成每日的打卡。


  public class ClockThread extends Thread {

    public void run() {

      scheduler = new Scheduler();

      scheduler.schedule("0 6 * * mon,tue,wed,thu,fri", new Thread() {
        @Override
        public void run() {

          if(scheduler1 != null){
            scheduler1.stop();
            scheduler1 = null;
          }
          if(scheduler2 != null){
            scheduler2.stop();
            scheduler2 = null;
          }
          if(scheduler3 != null){
            scheduler3.stop();
            scheduler3 = null;
          }
          if(scheduler4 != null){
            scheduler4.stop();
            scheduler4 = null;
          }
          // 随机在7:00 ~ 7:27之间打卡
          // scheduler1 scheduler.schedule(new Random().nextInt(28)+" 7 * * *",new Thread())
          // 随机在11:30 ~ 11:57之间打卡
          // scheduler2 scheduler.schedule((30 + new Random().nextInt(28))+" 11 * * *",new Thread())
          // 随机在13:00 ~ 13:27之间打卡
          // scheduler3 scheduler.schedule(new Random().nextInt(28)+" 13 * * *",new Thread())
          // 随机在17:30 ~ 17:57之间打卡
          // scheduler4 scheduler.schedule((30 + new Random().nextInt(28))+" 17 * * *",new Thread())


        }
      });

      scheduler.start();

    }

  }

以上就是Android 实现钉钉自动打卡功能的详细内容,更多关于Android 钉钉自动打卡的资料请关注编程网其它相关文章!

--结束END--

本文标题: Android 实现钉钉自动打卡功能

本文链接: https://www.lsjlt.com/news/121716.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android 实现钉钉自动打卡功能
    目录提前准备自动打开防止熄屏打开钉钉,签到后返回随机时间提前准备 首先我们需要一直不用的Android手机,插上公司的电源。下载安装钉钉并设置为极速打卡。 自动打开 我们只需要...
    99+
    2022-11-11
  • 怎么使用python代码实现钉钉自动打卡
    本篇内容介绍了“怎么使用python代码实现钉钉自动打卡”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!准备环境Android 手机一部(我用...
    99+
    2023-06-16
  • python实现钉钉机器人自动打卡天天早下班
    目录一,新建钉钉机器人二,钉钉机器人发送消息三,钉钉机器人实际的应用一,新建钉钉机器人 1.钉钉群右上角点击群设置,选择智能群助手,点击添加机器人,选择自定义机器人; 2.给机器人...
    99+
    2022-11-11
  • python如何实现钉钉机器人自动打卡天天早下班
    今天小编给大家分享一下python如何实现钉钉机器人自动打卡天天早下班的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一,新建...
    99+
    2023-07-02
  • 怎么用smokeping实现钉钉告警功能
    这篇文章主要讲解了“怎么用smokeping实现钉钉告警功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用smokeping实现钉钉告警功能”吧!第一:钉钉机器人API获取方式钉钉开放...
    99+
    2023-06-04
  • 怎么在Android中实现一个自动打卡功能
    这篇文章给大家介绍怎么在Android中实现一个自动打卡功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。提前准备首先我们需要一直不用的Android手机,插上公司的电源。下载安装钉钉并设置为极速打卡。自动打开我们只需...
    99+
    2023-06-14
  • 使用auto.js实现自动化每日打卡功能
    使用auto.js实现自动化每日打卡 疫情原因,需要在家每天定时打卡,每天刚起床的时候避免不了出现注意力不集中或者是看不到app,点不到按钮什么的(我瞎说的)。 所以,就想搞一个自动...
    99+
    2022-11-12
  • vue实现打卡功能
    本文实例为大家分享了vue实现打卡功能的具体代码,供大家参考,具体内容如下 记录使用vue实现移动端日历打卡样式 templatecompareToNow:与当前时间比较-1:小于...
    99+
    2022-11-13
  • webpack自动打包功能实现
    目录一、了解webpack二、在项目中安装和配置webpack三、webpack的打包四、webpack的自动打包一、了解webpack 当前web开发面临的困境1.文件依赖关系错综...
    99+
    2023-02-09
    webpack自动打包 webpack打包
  • 详解Jenkins 实现Gitlab事件自动触发Jenkins构建及钉钉消息推送
    实践环境 GitLab Community Edition 12.6.4 Jenkins 2.284 Post build task 1.9(Jenkins插件) Generic W...
    99+
    2022-11-12
  • Android实现自动朗读功能(TTS)
    前言: Android提供了自动朗读支持。可以对指定文本内容进行朗读,从而发生声音;还允许把文本对应的音频录制成音频文件,方便以后播放。Android的自动朗读主要通过TextToS...
    99+
    2022-11-12
  • python实现自动打卡小程序
    本文实例为大家分享了python实现自动打卡小程序的具体代码,供大家参考,具体内容如下 """ 湖南大学疫情防控每日自动打卡程序v1.0 author: Liu time:202...
    99+
    2022-11-11
  • android怎么实现自动点击功能
    要实现Android自动点击功能,可以使用Android提供的AccessibilityService服务。步骤如下:1. 创建一个...
    99+
    2023-10-07
    android
  • Android实现app开机自启动功能
    本文实例为大家分享了Android实现app开机自启动的具体代码,供大家参考,具体内容如下 最近要做个大屏的开发板程序,需要长期稳定运行,并开机自启运行此软件。 废话不多说,上...
    99+
    2022-06-07
    启动 app Android
  • android自动截图功能怎么实现
    要在Android中实现自动截图功能,可以使用以下步骤:1. 在AndroidManifest.xml文件中添加权限声明,以允许访问...
    99+
    2023-08-24
    android
  • Android自定义View实现自动吸附功能
    本文实例为大家分享了Android实现自动吸附功能的具体代码,供大家参考,具体内容如下 1.简述 最近开发app过程中要实现拖动view后要可以自动吸附功能,所以需要自定义vi...
    99+
    2022-06-06
    自动 view Android
  • Android编程实现自定义Tab选项卡功能示例
    本文实例讲述了Android编程实现自定义Tab选项卡功能。分享给大家供大家参考,具体如下: import android.app.TabActivity; import a...
    99+
    2022-06-06
    示例 tab Android
  • 小程序实现日历打卡功能
    本文实例为大家分享了小程序实现日历打卡功能的具体代码,供大家参考,具体内容如下 一、效果图展示 老惯例,先上效果图 二、实现思路 1、日历展示 例如下图中: 2021月7月打卡日历...
    99+
    2022-11-13
  • Android中怎么实现动画自动播放功能
    本篇文章给大家分享的是有关Android中怎么实现动画自动播放功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。具体如下:private ImageView ...
    99+
    2023-05-31
    android
  • Android自定义view实现日历打卡签到
    本文实例为大家分享了Android自定义view实现日历打卡签到的具体代码,供大家参考,具体内容如下 1.说明 自己写一个view实现每天签到的功能,设置背景图片 源码下载 2.效果...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作