本文仅记录一些笔者实践中摸索出来的开发方法,包括部分品牌手机的自动解锁,远程控制,一键熄屏,及利用QQ小号进行远程控制指令的下发等,更具体的开发请参看官网原文档
- 获取设备信息
var brand = device.brand;
var height = device.height;
var width = device.width;
- 无密码上滑解锁
device.wakeUpIfNeeded();
sleep(1000);
swipe(width / 2, height - 200, width / 2, 0, 200);
sleep(2000);
- 有密码,亮屏密码解锁
function unlock(password){
toastLog("获取密码成功"+password);
device.wakeUpIfNeeded();
sleep(1000);
if(brand == 'Meizu'){
//测试魅族无法模拟点击密码
swipe(width / 2, height - 200, width / 2, 0, 200);
}else if(brand == 'HUAWEI'){
//华为可以
swipe(width / 2, height - 200, width / 2, 0, 200);
if(password.length!=0){
sleep(2000);
for(var i=0;i<password.length;i++){
a=password.charAt(i);
toastLog("第"+i+'位'+a);
click(a);
}
toastLog("解锁成功");
sleep(1000);
}
}
}
// 解锁并静音,调节亮度到最低
function unlock(password){
device.wakeUpIfNeeded();
device.setBrightnessMode(0);
device.setMusicVolume(0)
device.setNotificationVolume(0);
device.setBrightness(0.5);
sleep(6000);
swipe(width / 2, height - 300, width / 2, 0, 200);
if(password.length!=0){
sleep(2000);
for(var i=0;i<password.length;i++){
a=password.charAt(i);
click(a);
}
sleep(1000);
}
}
- 锁屏
没有root,无法模拟。
替代方案:通过华为自带的一键锁屏这个应用熄屏
className("android.widget.TextView").text("一键锁屏").findOne().click();
- 读取通知
可以注册回调函数,比如收到qq消息后执行某些脚本,可以用这个特点在手机挂一个QQ小号来做远程控制。当然也可以通过后台实现此功能,只不过这样开发更快一些。
events.observeNotification();
// 注册回调
events.on("notification", function(n) {
notificationCallback(n);
}
);
// 回调函数,判断qq消息
function notificationCallback(n){
if(n.getPackageName()=='com.tencent.mobileqq'){
log("收到新通知:\n 标题: %s, \n内容: %s, \n包名: %s", n.getTitle(), n.getText(), n.getPackageName());
if(n.getText()=='元气满满'){
doSomeThing();
}
}
}