所需环境:
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);        }    }}

更多相关文章

  1. Android(安卓)WebView demo
  2. android如何调用Web Service手机归属地练习
  3. android模拟返回键
  4. Android(安卓)判断当前网络 wifi ctwap(cmwap) ctnet(cmnet)
  5. Android(安卓)Handler用法
  6. Android(安卓)的toolbar设置返回事件
  7. Android点击通知栏返回正在运行的Activity
  8. Android(安卓)webview 点击超链接打开新的webview
  9. Android实现两次按下返回键退出

随机推荐

  1. onRetainNonConfigurationInstance和getL
  2. Android(安卓)Sdk Manager更新
  3. Android入门教学视频免费下载
  4. Android(安卓)Adapter
  5. android 博客精选
  6. android中使用iconfont
  7. Android(安卓)UI 设置ProgressBar的颜色
  8. Android:实现定时器 Handler的postDelaye
  9. Android中判断是否有声音在播放
  10. android 横屏竖屏设置