编程之路第11天:解决此前截屏权限需要手动点击确认问题(打开双线程)

一、手动给截屏权限

if(!requestScreenCapture());
{
toast(“请求截图失败”);
exit();
}

//此处每次都会提示是否允许截屏;
requestScreenCapture()执行后,华为P20 pro会提示
“投射/录制时显示敏感信息 Auto.js Pro 将开始截取您的屏幕上显示的所有内容。
取消/立即开始”,点击后,才会执行下一个代码

captureScreen("/storage/emulated/0/1/05.jpg");     

// (……Pictures/05"+".jpg"); 此前出错在这里,多了一个"+"。
toast (“截屏已完成”)
var src=images.read("/storage/emulated/0/1/05.jpg");
var clip=images.clip(src,443,985,500,1250);
images.save(clip,"/storage/emulated/0/1/5.jpg");
toast (“截取片段完成”)

二、开启线程,让 “点击 ‘立即开始’” 和"截屏" 同时运行

// 1、开启线程,找到点击立即开始,并且触发事件(只需要执行一次就可以)
threads.start(function (){
var beginBtn;
if (beginBtn = classNameContains(“Button”).textContains(“立即开始”).findOne(2000)) {
beginBtn.click();
}
});
// 此处findOne(2000)是为了限制查找时间,如果留空,找不到就会一直找。
if(!requestScreenCapture()){
toast(“请求截图失败”);
exit();
}
sleep(2000);
// 此处与前面的findOne(2000)相对应,不然还没点“立即开始”,就截屏了
// 下面开始截屏
captureScreen("/storage/emulated/0/1/06.jpg");
toast (“截屏已完成”)
var src=images.read("/storage/emulated/0/1/06.jpg");
var clip=images.clip(src,443,985,500,1150);
images.save(clip,"/storage/emulated/0/1/6.jpg");
toast (“截取片段完成”)

三、遗留问题

shell("screencap /storage/emulated/0/1/7.jpg")  
// 虽然执行后确实有个6.jpg存在指定文件,但是大小为0 B.(即使开启了截屏权限也一样

你可能感兴趣的:(笔记)