AutoJs实现广东校园断网自动重连

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

前言

学校的校园网经常断网,每次都要手动点几下来重新联网。手机挂着软件也是经常被杀后台,离开宿舍也不方便,容易导致宿舍断网。想到本人有台旧手机或许可以用来挂着广东校园,解放其他人的手机,再通过autojs来写一个断网自动点击相应按钮来重连的脚本,这样就能极大程度上减少操作繁琐,不用担心断网没有及时重连的问题。
本人没有学习过js相关语言,实验过程也是边学边做,最终记录此次实验过程。


一、最终成果

思路是检测到断网后,退出整个应用再重新打开,之后点击登录

auto.waitFor();//等待无障碍服务启动
toast("开始运行");
while(true){
    
    
    desc("确定").waitFor();//等待“确定“字符出现,即检测是否断网
    toast("已断网");
    openAppSetting(getPackageName("广东校园"));//打开广东校园设置
    while(!click("强行停止"));
    while(!click("确定"));
    launchApp("广东校园");
    desc("点我登录").waitFor();//等待”点我登录“字符出现
    desc("点我登录").findOne().click();//点击”点我登录“字符
    toast("已点击登录");
}

二、实验过程

思路一

广东校园断网后会出现网络已断开的提示框,且下方有确定按钮,因此将是否出现”确定“字符作为断网的判断条件

desc("确定").waitFor();

在校园网断开后,点击确定,再点击登录上网即可恢复网络。

desc("确定").findOne().click();
desc("登录上网").findOne().click();

一开始按照这个思路很快就写完了脚本,但测试的时候发现“确定”按钮点击不生效
在布局分析界面看到“确定”按钮上有一个空白的控件,且是不可点击的,猜测是这个空白控件导致的“确定”按钮点击失效。
由于本人使用的旧手机来实验,安卓版本只有5,不支持click(x,y)这种简单无脑的点击操作,因此只能另找方法。

于是乎想到改用bounds值来点击
查看"确定“按钮的控件信息,找到bounds值

bounds(291,1026,408,1098).click();

测试后依旧无用,猜测是点击范围太大,应该选择”确定”按钮下边那一块没被挡住的小长方形的,但结果仍然不行。


思路二

在经过基于控件的操作方式来测试仍然多次不成功之后,我尝试更换一种方法。既然“确定”按钮用了很多方法都点击不到,那么就干脆把整个广东校园给关闭掉,然后重新打开。
一开始是想到两步,切出后台,上滑关闭软件

recent();//切后台
swipe(300,1000,300,500,1000);//上滑,用1秒钟从坐标(300,1000),滑动到(300,500)

结果在滑动的时候报错,提示安卓7以下不支持滑动操作。
于是乎换了另一种方法,打开软件设置,点击强行停止,然后重启软件,最终测试终于成功

openAppSetting(getPackageName("广东校园"));
    while(!click("强行停止"));
    while(!click("确定"));
    launchApp("广东校园");
    desc("点我登录").waitFor();
    desc("点我登录").findOne().click();

猜你喜欢

转载自blog.csdn.net/dankurodo/article/details/124181052