const process = require('child_process'); const schedule = require('node-schedule'); const sleep = (time) => new Promise(res => setTimeout(res, time)); function exec(shell) { return new Promise((resolve, reject) => { process.exec(shell, function (error, stdout, stderr) { if (error !== null) { // console.log('exec error: ' + stderr); reject(stderr); } // console.log(stdout); return resolve(stdout); }); }) } function isLight(){ return new Promise((resolve, reject) => { exec(`adb shell dumpsys power`).then(res => { if(res.includes("mHoldingDisplaySuspendBlocker=true")){ return resolve(true) } return resolve(false) }); }) } async function action() { console.log("连接至设置"); exec(`adb connect 192.168.4.11`) await sleep(3000) console.log('点亮屏幕') const light = await isLight() if (!light) { exec(`adb shell input keyevent 26`) await sleep(3000) } console.log('解锁') exec(`adb shell input swipe 200 800 200 300 1000`) await sleep(6000) console.log('关闭应用') exec(`adb shell am force-stop com.alibaba.android.rimet`) await sleep(2000) console.log('打开应用') exec(`adb shell am start -n com.alibaba.android.rimet/com.alibaba.android.rimet.biz.LaunchHomeActivity `) await sleep(16000) console.log('关闭应用') exec(`adb shell am force-stop com.alibaba.android.rimet`) await sleep(6000) console.log('关闭屏幕') exec(`adb shell input keyevent 26`) } function setSchedule(date, callback) { schedule.scheduleJob("dingding", date, callback) } setSchedule('0 40 8 * * *', () => { action() }) setSchedule('0 10 18 * * *', () => { action() })
node adb 控制
35 min read