【黑科技】钉钉自动打卡
16lz
2022-01-27
所需环境:
1、JDK
2、Android SDK
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Timer;import java.util.TimerTask;public class DDingAutoClock { public static void main(String[] args) { Timer timer = new Timer(); timer.schedule(new Task(), 60 * 1000); } static class Task extends TimerTask { public void run() { String str = getCurrentTime(); if(str.equals("08:00")){ System.out.println("定时任务执行"); //启动叮叮 try { execCommand("adb wait-for-device"); execCommand("adb shell am start -n com.alibaba.android.rimet/com.alibaba.android.rimet.biz.SplashActivity"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } public static String getCurrentTime(){ SimpleDateFormat formatter = new SimpleDateFormat ("HH:mm"); Date curDate = new Date(System.currentTimeMillis());//获取当前时间 String str = formatter.format(curDate); System.out.println(str); return str; } public static void execCommand(String command) throws IOException { // start the ls command running //String[] args = new String[]{"sh", "-c", command}; Runtime runtime = Runtime.getRuntime(); Process proc = runtime.exec(command); //这句话就是shell与高级语言间的调用 //如果有参数的话可以用另外一个被重载的exec方法 //实际上这样执行时启动了一个子进程,它没有父进程的控制台 //也就看不到输出,所以我们需要用输出流来得到shell执行后的输出 InputStream inputstream = proc.getInputStream(); InputStreamReader inputstreamreader = new InputStreamReader(inputstream); BufferedReader bufferedreader = new BufferedReader(inputstreamreader); // read the ls output String line = ""; StringBuilder sb = new StringBuilder(line); while ((line = bufferedreader.readLine()) != null) { //System.out.println(line); sb.append(line); sb.append("\n"); } //使用exec执行不会等执行成功以后才返回,它会立即返回 //所以在某些情况下是很要命的(比如复制文件的时候) //使用wairFor()可以等待命令执行完成以后才返回 try { if (proc.waitFor() != 0) { System.out.println(proc.exitValue()); } } catch (InterruptedException e) { System.err.println(e); } }}
更多相关文章
- Android(安卓)WebView demo
- android如何调用Web Service手机归属地练习
- android模拟返回键
- Android(安卓)判断当前网络 wifi ctwap(cmwap) ctnet(cmnet)
- Android(安卓)Handler用法
- Android(安卓)的toolbar设置返回事件
- Android点击通知栏返回正在运行的Activity
- Android(安卓)webview 点击超链接打开新的webview
- Android实现两次按下返回键退出