admin管理员组

文章数量:1530030

原始 apk: 保护生态apk

自助 激活码

技术选型

由于平台更新速度快,为了方便更新,维护,修复bug等。采用 autojs

软件源码

如果有任何问题欢迎交流。源码如下:

"ui";
storage = storages.create("界面配置");//初始化一个可以保存界面配置的文本 ,这里的文本名称为:界面配置
os = false;
ini()
恰恰ui()
function 恰恰ui() {
    ui.layout(
        <vertical bg="#B0E0E6" h="*" >;
        <ScrollView>
        <vertical id="恰恰设置" alpha="1" bg="#B0E0E6" layout_gravity="left" w="*" >
                        <text gravity="center" textColor="red" textSize="25sp" text="当前恰恰设置"></text>
                            <horizontal gravity="left" >
                                <checkbox id="恰恰_主动招呼" text="主动打招呼" textSize="15sp" checked={相亲数据.get("恰恰_主动招呼", true) == false ? false : true} />;
                            </horizontal>
                            <horizontal gravity="left" >
                                <checkbox id="恰恰_话术招呼" text="发消息" textSize="15sp" checked={相亲数据.get("恰恰_话术招呼", true) == false ? false : true} />;
                                <checkbox id="恰恰_视频招呼" text="打视频" textSize="15sp" checked={相亲数据.get("恰恰_视频招呼", false) == false ? false : true} />;
                                <checkbox id="飘屏" text="飘屏" textSize="15sp" checked={相亲数据.get("飘屏", false) == false ? false : true} />;
                            </horizontal>
                            <horizontal>
                                <text text="单个用户打招呼次数:" textStyle="bold" textSize="15" />
                                <input id="恰恰_招呼次数" hint="数字" textColor="#dd000000" >{相亲数据.get("恰恰_招呼次数", 1)}</input>;
                                <text text="次" />
                            </horizontal>
                            <horizontal gravity="left" >
                                <checkbox id="恰恰_新消息" text="新消息智能聊天" textSize="15sp" checked={相亲数据.get("恰恰_新消息", true) == false ? false : true} />;
                                <checkbox id="恰恰_接视频" text="自动接视频" textSize="15sp" checked={相亲数据.get("恰恰_接视频", false) == false ? false : true} />;
                            </horizontal>
                            <horizontal>
                                <text text="自动打视频对方未接听挂断时间:" textStyle="bold" textSize="15" />
                                <input id="挂断时间" hint="数字" textColor="#dd000000" >{相亲数据.get("挂断时间", 15)}</input>;
                                <text text="秒" />
                           </horizontal>
                            <horizontal>
                                <text text="发送等待时间:" textStyle="bold" textSize="15" />
                                <input id="恰恰_发送等待" hint="数字" textColor="#dd000000" >{相亲数据.get("恰恰_发送等待", 0)}</input>;
                                <text text="秒" />
                                </horizontal>
                            <horizontal>
                                <text text="发几个人后刷新一下:" textStyle="bold" textSize="15" />
                                <input id="恰恰_私信数量" hint="数字" textColor="#dd000000" >{相亲数据.get("恰恰_私信数量", 80)}</input>;
                            <text text="人" />
                            </horizontal>
                            <horizontal gravity="left" >;
                            <text text="回复消息查找页数:" textStyle="bold" textSize="15" />
                                <input id="查找页数" hint="数字" textColor="#dd000000" >{相亲数据.get("查找页数", 15)}</input>;
                                <text text="页;" />
                            </horizontal>
                            <horizontal>
                                <text text="处理新消息时允许时间:" textStyle="bold" textSize="15" />
                                <input id="恰恰_消息空闲" hint="数字" textColor="#dd000000" >{相亲数据.get("恰恰_消息空闲", 30)}</input>;
                                <text text="秒" />
                            </horizontal>
                            <checkbox id="日志显示" text="日志显示" textSize="18sp" checked={相亲数据.get("日志显示", true) == false ? false : true} />; 
                                <button id="返回键" text="返回" textSize="30sp" style="Widget.AppCompat.Button.Colored" w="*" />;
                                <button id="恰恰_删除" text="删除用户数据" textSize="30sp" style="Widget.AppCompat.Button.Colored" w="*" />;
                                <button id="开始恰恰" text="开始恰恰" textSize="40sp" style="Widget.AppCompat.Button.Colored" w="*" />;
                                <button id="欢迎使用" text="欢迎使用" textSize="60sp" style="Widget.AppCompat.Button.Colored" w="*" />;
                        </vertical>
        </ScrollView>
        </vertical>
    );
    ui.返回键.on("click", () => {
        back()
    });
    ui.恰恰_删除.on("click", () => {
        相亲数据.remove("恰恰_namemod")
        toastLog("删除用户招呼数据成功,现在将重新开始记录数据!")
    });
    ui.开始恰恰.on("click", () => {
        toastLog("启动中。点一次就可以哦")
        if (相亲数据.get("自定关键词话术")) {
            关键词话术 = 相亲数据.get("自定关键词话术").split("\r\n");
        } else if (相亲数据.get("关键词话术")) {
            关键词话术 = 相亲数据.get("关键词话术").split("\r\n");
        }
        if (相亲数据.get("自定通用话术")) {
            通用话术 = 相亲数据.get("自定通用话术")
        } else if (相亲数据.get("通用话术")) {
            通用话术 = 相亲数据.get("通用话术")
        }
        if (相亲数据.get("自定主动话术")) {
            主动话术 = 相亲数据.get("自定主动话术")
        } else if (相亲数据.get("主动话术")) {
            主动话术 = 相亲数据.get("主动话术")
        }
        当前app = getAppName("com.qiaqiachat.vip")
        if (getAppName("com.qiaqiachat.vip")) {
            当前app = getAppName("com.qiaqiachat.vip")
        } else {
            toastLog("您没有安装恰恰,脚本停止!")
            exit()
        }
        当前app版本 = 应用版本("com.qiaqiachat.vip")
        相亲数据.put("恰恰_主动招呼", true);
        相亲数据.put("恰恰_新消息", ui.恰恰_新消息.checked);
        相亲数据.put("恰恰_视频招呼", ui.恰恰_视频招呼.checked);
        相亲数据.put("恰恰_话术招呼", ui.恰恰_话术招呼.checked);
        相亲数据.put("飘屏", ui.飘屏.checked);
        相亲数据.put("恰恰_接视频", ui.恰恰_接视频.checked);
        相亲数据.put("恰恰_发送等待", ui.恰恰_发送等待.text());
        相亲数据.put("恰恰_消息空闲", ui.恰恰_消息空闲.text());
        相亲数据.put("恰恰_招呼次数", ui.恰恰_招呼次数.text());
        相亲数据.put("恰恰_私信数量", ui.恰恰_私信数量.text());
        相亲数据.put("挂断时间", ui.挂断时间.text());
        相亲数据.put("查找页数", ui.查找页数.text());
        相亲数据.put("日志显示", ui.日志显示.checked);
        // jihuomaCheck(cacheCode)
        huidiao = true
        setTimeout(function () {
            if (huidiao == true) {
                threads.start(function () {
                    home()
                    悬浮窗()
                    if (相亲数据.get("日志显示", true)) {
                        日志显示()
                        setInterval(() => {
                            window.setSize(device.width, device.height / 4)
                            window.setPosition(0, Math.round(1330 * h / 1920))
                            window.setTouchable(false);
                        }, 1000);
                    }
                   
                });
                threads.start(function () {
                    main(当前app, 当前app版本)
                });
            }
        }, 1000);
    });
   
   
}
//下拉框保存界面配置

// function 存储数据2() {
//     storage.put("sp2", ui.sp2.getSelectedItemPosition());//保存id为 sp1 的下拉框选项 到界面配置文本
// }
/*
如果读取下拉框sp1 在界面配置文本中不等于 undefined 则 设置下拉框sp1的选中项为 读取下拉框sp1保存的值
*/
function main(应用名称, 版本号) {
    主线程 = threads.start(function () {
        home()
        // try {
        while (true) {
            log("xxxx")
            启动应用(当前app, 当前app版本)
            开始恰恰()
        }
        // } catch (error) {
        //     console.error("主线程,出现未知异常!")
        // }
    });
    // 检测线程 = threads.start(function () {
    //     while (true) {
    //         // try {
    //         前台检测(应用名称, 版本号)
    //         // } catch (error) {
    //         //     console.error("前台检测线程,出现未知异常!")
    //         // }
    //     }
    // });
}

function 开始恰恰() {
    console.info("开始运行恰恰...");
    sleep(2000)
    var 招呼计数 = 0
    var 私信条数 = 0
    var lcs = 0
    var lcsx=0
    var 首次启动 = true
    var x = device.width;
    var y = device.height;
    threads.start(function () {
        while (true) {
            xhkvideo()
            if (相亲数据.get("飘屏", true)) {
                if (id("gift_type_tv").text("充值").exists()) {
                    var cz = id("gift_type_tv").text("充值").findOnce()
                    if (cz) {
                        console.info("点击充值");
                        try {
                            cz.parent().parent().click()
                            sleep(1000)
                        } catch (error) {
                            console.info("点击充值...");
                        }
                        sleep(1000)
                    }
                    while (id("count_time_tv").exists() && id("head_iv").exists()) {
                        if (相亲数据.get("恰恰_接视频", false)) {
                            if (id("accept_tv").exists()) {
                                if (cj = id("accept_tv").findOne(5000)) {
                                    try {
                                        console.info("接视频");
                                        cj.click();
                                        sleep(2000)
                                    } catch (error) {
                                        console.info("接视频...");
                                    }
                                }
                                var node = id("accept_tv").findOne(1000)
                                if (node) {
                                    点击(node)
                                    sleep(2000)
                                }
                            }
                        }
                        console.info("通话中!");
                        sleep(2000)
                    }
                    私信界面();
                    恰恰返回首页();
                }
            }

            if (text("音乐").exists()&&text("恰恰").exists()||text("保护生态").exists()&&text("恰恰").exists()||id("search_box").exists()) {
                console.info("异常闪退");
                app.launchPackage("com.qiaqiachat.vip")
                sleep(5000)
            }
            if (id("accept_tv").exists()) {
                if (相亲数据.get("恰恰_接视频", false)) {
                    if (id("accept_tv").exists()) {
                        if (cj=id("accept_tv").findOne(5000)) {
                            try {
                                console.info("接视频");
                                cj.click();
                                sleep(2000)
                            } catch (error) {
                                console.info("接视频...");
                            }
                        }
                        var node = id("accept_tv").findOne(1000)
                        if (node) {
                            点击(node)
                            sleep(2000)
                        }
                    }
                }
                while (id("accept_tv").exists() || id("call_hang_up_tv").exists()) {
                    sleep(2000)
                    console.info("正在等待接通视频或正在视频通话中!");
                    if (相亲数据.get("恰恰_接视频", false)) {
                        if (id("accept_tv").exists()) {
                            if (cj=id("accept_tv").findOne(5000)) {
                                try {
                                    console.info("接视频");
                                    cj.click();
                                    sleep(2000)
                                } catch (error) {
                                    console.info("接视频...");
                                }
                            }
                            var node = id("accept_tv").findOne(1000)
                            if (node) {
                                点击(node)
                                sleep(2000)
                            }
                        }
                    }
                }
                是否检测 = true
            } 
            while (id("count_time_tv").exists()&&id("head_iv").exists()) {
                if (相亲数据.get("恰恰_接视频", false)) {
                    if (id("accept_tv").exists()) {
                        if (cj=id("accept_tv").findOne(5000)) {
                            try {
                                console.info("接视频");
                                cj.click();
                                sleep(2000)
                            } catch (error) {
                                console.info("接视频...");
                            }
                        }
                        var node = id("accept_tv").findOne(1000)
                        if (node) {
                            点击(node)
                            sleep(2000)
                        }
                    }
                }
                console.info("通话中!");
                sleep(2000)
            }
            if (id("one_key_send_tv").text("一键群发").exists()) {
                if (cj = id("one_key_send_tv").text("一键群发").findOne(5000)) {
                    try {
                        console.info("一键群发");
                        cj.click();
                        sleep(2000)
                    } catch (error) {
                        console.info("一键群发...");
                    }
                }
            }
            if (id("close_iv").depth(10).exists() && text("本次通话已结束").exists()) {
                if (cj=id("close_iv").depth(10).findOne(5000)) {
                    try {
                        console.info("关闭");
                        cj.click();
                        sleep(2000)
                    } catch (error) {
                        console.info("关闭...");
                    }
                }
            }
            if (text("提交评论").id("btnScore").exists()) {
                log("通话结束")
                if (text("提交评论").id("btnScore").findOne(1000)) {
                    back();
                    sleep(1000)
                }
            }
            if (id("close_iv").exists() && id("one_key_send_tv").text("一键群发").exists()) {
                if (cj=id("close_iv").findOne(5000)) {
                    try {
                        console.info("关闭");
                        cj.click();
                        sleep(2000)
                    } catch (error) {
                        console.info("关闭...");
                    }
                    sleep(1000)
                    var cj=id("close_iv").findOne(1000)
                    if(cj){
                       点击(cj)
                    }
                    console.info("关闭");
                    sleep(2000)
                }
            }
            if (id("btnCancel").text("我知道了").exists()) {
                if (cj = id("btnCancel").text("我知道了").findOne(1000)) {
                    try {
                        console.info("我知道了");
                        cj.click();
                        sleep(2000)
                    } catch (error) {
                        console.info("我知道了。。。");
                    }
                }
            }
           
        }
    });
    xhkvideo()
    if (相亲数据.get("恰恰_主动招呼", true)) {
        if (相亲数据.get("恰恰_话术招呼", true) || 相亲数据.get("恰恰_视频招呼", true)) {
            console.info("正在处理主动打招呼...");
            while (true) {
                恰恰返回首页();
                if (id("private_chat_tv").depth(16).visibleToUser(true).findOne(5000)) {
                    console.info("在打招呼界面");
                    xhkvideo()
                    while (true) {
                        xhkvideo()
                        var nodes = id("private_chat_tv").depth(16).visibleToUser(true).find()
                        if (!nodes.empty()) {
                            console.info("共有男神" + nodes.size() + "个");
                            for (var ii = 0; ii < nodes.length; ii++) {
                                if (相亲数据.get("恰聊_新消息", true)) {
                                    console.info("检测新消息");
                                    huifuxiaoxi();
                                }
                                sleep(500);
                                var user = id("private_chat_tv").depth(16).visibleToUser(true).find()
                                if (!user.empty()) {
                                    var dangqian = user.size()
                                    log("第" + [ii + 1] + "个" + "现在有:" + dangqian + "个")
                                    if (ii >= dangqian) {
                                        console.info("人数超过");
                                        break;
                                    }
                                    var nan = id("private_chat_tv").depth(16).visibleToUser(true).findOnce()
                                    if (nan) {
                                        if (id("private_chat_tv").depth(16).visibleToUser(true).findOne(2000)) {
                                            try {
                                                log("点击第" + [ii + 1] + "个" + "现在有:" + dangqian + "个")
                                                user[ii].click()
                                                sleep(1000)
                                            } catch (error) {
                                                log("点击男神。。。。")
                                            }
                                        }
                                    } else {
                                        恰恰返回首页()
                                    }
                                    xhkvideo()
                                    私信条数 = 私信条数 + 1
                                    私信界面()
                                    聊天界面();
                                    恰恰返回();
                                    恰恰返回();
                                    while (true) {
                                        if (text("首页").findOne(5000) && text("消息").exists()||text("本次通话已结束").exists()) {
                                            console.info("首页界面确认");
                                            break;
                                        }
                                        if (text("音乐").exists()&&text("恰恰").exists()||text("保护生态").exists()&&text("恰恰").exists()||id("search_box").exists()) {
                                            console.info("异常闪退");
                                            app.launchPackage("com.qiaqiachat.vip")
                                            sleep(5000)
                                        }
                                        恰恰返回();
                                    }
                                } else {
                                    xhkvideo()
                                    log("未在首页")
                                }
                            }
                        } else {
                            xhkvideo()
                            console.info("未在首页界面");
                            break;
                        }
                        swipe((device.width / 10) * 3, (device.height / 10) * 8, (device.width / 10) * 3, (device.height / 10) * 2, 1000)
                        sleep(1000)
                        swipe((device.width / 10) * 3, (device.height / 10) * 8, (device.width / 10) * 3, (device.height / 10) * 2, 1000)
                        if (textStartsWith("正在加载").exists()) {
                            console.info("正在加载。。");
                            swipe((device.width / 10) * 3, (device.height / 10) * 8, (device.width / 10) * 3, (device.height / 10) * 0, 1000)
                            sleep(5000)
                        }
                        lcs++
                        if (私信条数 >= 相亲数据.get("恰恰_私信数量", 30)) {
                            for (var ix = 0; ix < lcs + 4; ix++) {
                                swipe((device.width / 10) * 3, (device.height / 10) * 3, (device.width / 10) * 3, (device.height / 10) * 10, 800)
                                sleep(1000)
                                console.info("已经达到设定的私信人数,返回刷新...");
                            }
                            sleep(3000)
                            私信条数 = 0
                            lcs = 0
                        }

                    }
                }
            }
        }
        //恰恰视频招呼
    }
  
    function 私信界面(){
        var sx = text("私信").depth(10).findOnce()
        if (sx) {
            console.info("点击私信");
            点击(sx)
            sleep(1000)
            聊天界面();
        }
    }

    function 聊天界面() {
        if (id("input_et").findOne(5000)) {
            xhkvideo()
            var name = id("middle_title").findOne(5000)
            if (name && name.text().indexOf("系统消息") == -1 && name.text().indexOf("在线客服") == -1 && name.text().indexOf("恰恰") == -1) {
                xhkvideo()
                console.info(name.text());
                if (idEndsWith("_head_iv").depth(11).findOne(1000)) {
                    xhkvideo()
                    do {
                        var a = idEndsWith("_head_iv").depth(11).find()
                    } while (a.length <= 0)
                    var name_id = a[a.length - 1];
                    if (name_id.bounds().centerX() < device.width / 2 && id("left_text_type_tv").exists()) {
                        xhkvideo()
                        do {
                            var a = id("left_text_type_tv").find();
                        } while (a.length <= 0)
                        var 对方内容 = a[a.length - 1].text()
                        var 回复内容 = 话术分析(对方内容, "被动")
                        var 回复内容1 = 话术分析1(对方内容, "被动")
                        if (id("input_et").findOne(5000)) {
                            if (相亲数据.get('用自定义发送', false)) {
                                id("input_et").findOne(5000).setText(String(回复内容1[1]))
                                console.info("对方的内容:" + 对方内容 + ",现在使用自定义:" + 回复内容1[0] + "回复,回复内容:" + 回复内容1[1])
                            } else {
                                console.info("对方的内容:" + 对方内容 + ",现在使用:" + 回复内容[0] + "回复,回复内容:" + 回复内容[1])
                                id("input_et").findOne(5000).setText(String(回复内容[1]))
                            }
                            sleep(1000)
                            if (text("发送").id("send_tv").findOne(5000)) {
                                if (cj = text("发送").id("send_tv").findOne(1000)) {
                                    点击(cj)
                                }
                                console.info("发送话术已完成");
                                sleep(1000)
                            }
                            xhkvideo()
                        }
                    } else {
                        if (xhkdate(name.text()) <= 相亲数据.get("恰恰_招呼次数", 1) - 1) {
                            恰恰回复方式();
                        } else {
                            console.info("此用户打招呼次数已达到设置次数,本次不操作!");
                            sleep(1000)
                        }
                    }
                } else {
                    恰恰回复方式();
                }
            } else {
                console.info("难道碰上客服小姐姐了吗?");
            }
        }
    }
    
    function 恰恰回复方式() {
       
        if (相亲数据.get("恰恰_话术招呼", true)) {
            var 对方内容 = true
            var 回复内容 = 话术分析(true, "主动")
            var 回复内容1 = 话术分析1(true, "主动")
            if (id("input_et").findOne(5000)) {
                if (相亲数据.get('用自定义发送', true)) {
                    id("input_et").findOne(5000).setText(String(回复内容1[1]))
                    console.info("对方的内容:" + 对方内容 + ",现在使用自定义:" + 回复内容1[0] + "回复,回复内容:" + 回复内容1[1])
                } else {
                    console.info("对方的内容:" + 对方内容 + ",现在使用:" + 回复内容[0] + "回复,回复内容:" + 回复内容[1])
                    id("input_et").findOne(5000).setText(String(回复内容[1]))
                }
                sleep(1000)
                if (text("发送").id("send_tv").findOne(5000)) {
                    if (cj = text("发送").id("send_tv").findOne(1000)) {
                        点击(cj)
                    }
                    console.info("发送话术已完成");
                    sleep(1000)
                    for (var 等待时间 = 相亲数据.get("恰恰_发送等待", 3); 等待时间 >= 0; 等待时间--) {
                        sleep(1000)
                        xhkvideo()
                        console.info("发送完成等待" + 等待时间 + "秒后继续");
                    }
                }
            }
        }
        if (相亲数据.get("恰恰_视频招呼", true)) {
            if (cj = id("video_tv").findOne(5000)) {
                try {
                    log("点击视频")
                    cj.click()
                    sleep(2000);
                } catch (error) {
                    log("点击视频。。。")
                }
            }
            if (text("您正在发起视频通话…").findOne(3000) && id("call_hang_up_tv").exists()) {
                sleep(500)
                console.info("正在等待对方接通视频!或者正在视频中a");
                for (var 等待时间 = 相亲数据.get("挂断时间", 15); 等待时间 >= 0; 等待时间--) {
                    sleep(1000)
                    console.info("等待对方接听" + 等待时间 + "秒后未接就挂断");
                    if (!text("您正在发起视频通话…").findOne(3000) && !id("call_hang_up_tv").exists()) {
                        break;
                    }
                }
                if (text("您正在发起视频通话…").findOne(3000) && id("call_hang_up_tv").exists()) {
                    if (id("call_hang_up_tv").exists()) {
                        id("call_hang_up_tv").findOne(2000).click();
                        sleep(1000);
                    }
                }
                xhkvideo()
                sleep(1000)
            } else {
                console.info("对方设置了勿扰,给他发个消息吧");
                var 对方内容 = true
                var 回复内容 = 话术分析(true, "主动")
                var 回复内容1 = 话术分析1(true, "主动")
                if (id("input_et").findOne(5000)) {
                    if (相亲数据.get('用自定义发送', true)) {
                        id("input_et").findOne(5000).setText(String(回复内容1[1]))
                        console.info("对方的内容:" + 对方内容 + ",现在使用自定义:" + 回复内容1[0] + "回复,回复内容:" + 回复内容1[1])
                    } else {
                        console.info("对方的内容:" + 对方内容 + ",现在使用:" + 回复内容[0] + "回复,回复内容:" + 回复内容[1])
                        id("input_et").findOne(5000).setText(String(回复内容[1]))
                    }
                    sleep(1000)
                    if (text("发送").id("send_tv").findOne(5000)) {
                        if (cj = text("发送").id("send_tv").findOne(1000)) {
                            点击(cj)
                        }
                        console.info("发送话术已完成");
                        sleep(1000)
                        for (var 等待时间 = 相亲数据.get("恰恰_发送等待", 3); 等待时间 >= 0; 等待时间--) {
                            sleep(1000)
                            xhkvideo()
                            console.info("发送完成等待" + 等待时间 + "秒后继续");
                        }
                    }
                }
            }
        }

    }

    function huifuxiaoxi() {
        var msg = false
        if (id("red_count_tv").depth(10).findOne(100)) {
            if (Number(id("red_count_tv").depth(10).findOne(1000).text().replace("+", "")) >= 1) {
                msg = true
                if(text("消息").id("message_tv").findOne(2000)){
                    text("消息").id("message_tv").findOne(2000).click();
                    console.info("点击消息");
                    sleep(1000);
                }
            } else {
                msg = false
            }
        }
        if (msg&&text("首页").findOne(5000) && text("消息").exists()&& 相亲数据.get("恰恰_新消息", true)) {
            var 滑动 = false
            var 计时线程 = threads.start(function () {
                sleep(相亲数据.get("恰恰_消息空闲", 30) * 1000)
            });
            console.info("有新消息,正在处理新消息...");
            
            if (text("清空").findOne(5000) && text("消息").exists()) {
                console.info("在消息界面");
                var msg = false
                if (id("red_count_tv").depth(10).findOne(100)) {
                    if (Number(id("red_count_tv").depth(10).findOne(1000).text().replace("+", "")) >= 1) {
                        msg = true
                    } else {
                        msg = false
                    }
                }
                while (msg) {
                    xhkvideo()
                    sleep(1000)
                    if (id("number_tv").depth(16).boundsInside(x * 0.05, y * 0.1, x-1, y * 0.93).exists()) {
                        console.info("有新消息,正在处理新消息2...");
                        if (cj = id("number_tv").depth(16).boundsInside(x * 0.05, y * 0.1, x-1, y * 0.93).findOne(1000)) {
                            xhkvideo()
                            click(cj.bounds().centerX() - 100, cj.bounds().centerY());
                            console.info("点击消息红点");
                            sleep(1000)
                        }
                        var nan = id("clear_tv").text("清空").visibleToUser(true).findOnce()
                        if (nan) {
                            sleep(1000)
                        }
                        私信条数 = 私信条数 + 1
                        聊天界面();
                        恰恰返回();
                        恰恰返回();
                        while (true) {
                            if(text("消息").exists()&&text("首页").exists()||text("本次通话已结束").exists()){
                               break;
                            }
                            恰恰返回();
                        }
                        var 计时线程 = threads.start(function () {
                            sleep(相亲数据.get("恰恰_消息空闲", 30) * 1000)
                        });
                    } else {
                        if (计时线程.isAlive() == false) {
                            console.info("已达到设定的消息处理时间");
                            恰恰返回首页();
                            break
                        }
                        xhkvideo()
                        if (滑动 == false) {
                            if (恰恰Stopdingbu()) {
                                xhkvideo()
                                滑动 = true;
                                xhkvideo()
                            }
                        } else {
                            if (恰恰Stopdibu()) {
                                xhkvideo()
                                滑动 = false;
                                xhkvideo()
                            }
                        }
                        sleep(1000)
                    }
                    if (id("red_count_tv").depth(10).findOne(100)) {
                        try {
                            if (Number(id("red_count_tv").depth(10).findOne(1000).text().replace("+", "")) >= 1) {
                                msg = true
                                console.info("还有消息");
                            } else {
                                msg = false
                                console.info("没有消息了");
                                恰恰返回首页();
                            }
                        } catch (error) {
                            console.info("还有消息....");
                        }
                    } else {
                        msg = false
                        console.info("没有消息了");
                        恰恰返回首页();
                    }
                }
            }
        };
    }
    function 恰恰返回() {
        var dksd = 0
        if (text("首页").findOnce() &&text("消息").findOnce()) {
            dksd = 1
        }
        if (dksd == 0) {
            if (id("left_fl").findOnce() || id("left_image").findOnce()|| id("input_et").findOnce()|| id("one_back_iv").findOnce()||text("本次通话已结束").exists()) {
                console.info("返回");
                back()
                sleep(1000)
            }
        }
    }

    function 恰恰返回首页(){
        while (true) {
            if (相亲数据.get("恰恰_接视频", false)) {
                if (id("accept_tv").exists()) {
                    if (cj=id("accept_tv").findOne(5000)) {
                        try {
                            console.info("点击接听");
                            cj.click();
                            sleep(1000);
                        } catch (error) {
                            console.info("点击接听....");
                        }
                    }
                    var node = id("accept_tv").findOne(1000)
                    if (node) {
                        点击(node)
                        sleep(2000)
                    }
                }
            }
            if (text("首页").findOne(5000)&&text("消息").exists()) {
                sleep(1000)
                if (cj=id("home_tv").text("首页").findOnce()) {
                    try {
                        console.info("点击首页");
                        cj.click();
                        sleep(1000);
                    } catch (error) {
                        console.info("点击首页....");
                    }
                }
                if (cj = id("iv_top").findOnce()) {
                    try {
                        toastLog("点击置顶")
                        cj.click()
                        sleep(1000);
                    } catch (error) {
                        console.info("点击首页....");
                    }
                }
                if (id("male_user_tv").text("男生").visibleToUser(true).exists()) {
                    if (cj = id("male_user_tv").text("男生").visibleToUser(true).findOne(1000)) {
                        try {
                            log("点击男神")
                            cj.click()
                            sleep(1000);
                        } catch (error) {
                            log("点击男神。。")
                        }
                    }
                }
                sleep(1000);
                break;
            };
            恰恰返回();
        }
    }

    function xhkvideo() {
        while (id("count_time_tv").exists()&&id("local_video_view").exists()) {
            console.info("通话中!");
            if (相亲数据.get("恰恰_接视频", false)) {
                if (id("accept_tv").exists()) {
                    if (cj=id("accept_tv").findOne(5000)) {
                        try {
                            console.info("点击接听");
                            cj.click();
                            sleep(1000);
                        } catch (error) {
                            console.info("点击接听....");
                        }
                    }
                    var node = id("accept_tv").findOne(1000)
                    if (node) {
                        点击(node)
                        sleep(2000)
                    }
                }
            }
        }
        if (相亲数据.get("恰恰_接视频", false)) {
            if (id("accept_tv").exists()) {
                if (cj=id("accept_tv").findOne(5000)) {
                    try {
                        console.info("点击接听");
                        cj.click();
                        sleep(1000);
                    } catch (error) {
                        console.info("点击接听....");
                    }
                }
                var node = id("accept_tv").findOne(1000)
                if (node) {
                    点击(node)
                    sleep(2000)
                }
            }
        }
        if (相亲数据.get("飘屏", true)) {
            if (id("gift_type_tv").text("充值").visibleToUser(true).exists()) {
                var cz = id("gift_type_tv").text("充值").findOnce()
                if (cz) {
                    console.info("点击充值");
                    try {
                        cz.parent().parent().click()
                        sleep(1000)
                    } catch (error) {
                        console.info("点击充值...");
                    }
                    sleep(1000)
                }
                私信界面();
                恰恰返回首页();
            }
        }
    }

    function xhkdate(namemod) {
        if (!相亲数据.get("恰恰_namemod")) {
            相亲数据.put("恰恰_namemod", [["风粒子", 1]]);
        }
        var mod = 相亲数据.get("恰恰_namemod")
        for (var ia = 0; ia < mod.length; ia++) {
            if (mod[ia][0] == namemod) {
                if (mod[ia][1] >= 相亲数据.get("恰恰_招呼次数", 1)) {
                    return mod[ia][1]
                } else {
                    mod[ia][1]++
                    相亲数据.put("恰恰_namemod", mod);
                    return mod[ia][1] - 1
                }
            }
        }
        mod.push([namemod, 1])
        相亲数据.put("恰恰_namemod", mod);
        return 0
    }

    function 恰恰Stopdibu() {//恰恰到底
        xhkvideo()
        var z = id("nick_tv").depth(16).find()//名id
        if (!z.empty()) {
            if (!z.empty()) {
                var hdq = z[z.length - 1].getText()+"";
                console.info(hdq)
            }
            swipe((device.width / 10) * 3, (device.height / 10) * 8.5, (device.width / 10) * 3, (device.height / 10) * 0, 1000)
            sleep(500)
            var d = id("nick_tv").depth(16).find()//名字id
            if (!d.empty()) {
                var hdh = d[d.length - 1].getText()+"";
                console.info(hdh)
            }
            lcsx++
            if (lcsx >= 相亲数据.get("查找页数", 15)) {
                console.info("已达到您预设查找页数" + 相亲数据.get("查找页数", 15) + "现在往回翻页");
                for (let i = 0; i < Number(lcsx + 2); i++) {
                    sleep(500)
                    swipe(x / 2, y * 0.4, x / 2, y * 0.99, 500)
                    sleep(500)
                }
                lcsx = 0
                return true;
            }
            if (hdq == hdh) {
                console.info("到底了")
                return true;
            } else {
                return false;
            }
        }

    }

    function 恰恰Stopdingbu() {//恰恰到顶
        xhkvideo()
        var z = id("nick_tv").depth(16).find()//名字id
        if (!z.empty()) {
            if (!z.empty()) {
                var hdq = z[0].getText()+"";
                console.info(hdq)
            }
            swipe((device.width / 10) * 3, (device.height / 10) * 3, (device.width / 10) * 3, (device.height / 10) * 10, 800)
            if(textContains("正在刷新").exists()){
                console.info("正在刷新")
                sleep(2000)
            }
            sleep(1000)
            var d = id("nick_tv").depth(16).find()//名字id
            if (!d.empty()) {
                var hdh = d[0].getText()+"";
                console.info(hdh)
            }
            if (hdq == hdh) {
                console.info("到顶了")
                return true;
            } else {
                return false;
            }
        }

    }
}
function json存值(prop, val) {
    str1 = 相亲数据.get("聊天数据", {})
    if (typeof val === "undefined") {
        delete str1[prop];
    } else {
        str1[prop] = val;
        相亲数据.put("聊天数据", str1);
        return str1
    }
}

function 话术分析(内容, 类型) {
    if (内容 == true && 类型 != "主动" || 内容 == false && 类型 != "主动") {
        var a = 通用话术.split("\n")
        return ["通用话术", a[random(0, a.length - 1)]]
    } else if (类型 == "主动") {
        var a = 主动话术.split("\n")
        return ["主动话术", a[random(0, a.length - 1)]]
    }
    else {
        for (var i = 0; i < 关键词话术.length; i++) {
            if (关键词话术[i] != "undefined" && 关键词话术[i] != "") {
                var a = 关键词话术[i].split("--")
                if (内容.indexOf(a[0].replace(/\n/g, "")) > -1) {
                    return ["关键词话术", a[random(1, a.length - 1)]]
                }
            }
        }
        var a = 通用话术.split("\n")
        return ["通用话术", a[random(0, a.length - 1)]]
    }
}

function 话术分析1(内容, 类型) {
    if (内容 == true && 类型 != "主动" || 内容 == false && 类型 != "主动") {
        var a = 通用话术1.split("--")
        return ["通用话术1", a[random(0, a.length - 1)]]
    } else if (类型 == "主动") {
        var a = 主动发送.split("--")
        return ["主动发送", a[random(0, a.length - 1)]]
    }
    else {
        for (var i = 0; i < 主话术.length; i++) {
            if (主话术[i] != "undefined" && 主话术[i] != "") {
                var a = 主话术[i].split("--")
                if (内容.indexOf(a[0]) > -1) {
                    return ["主话术", a[random(1, a.length - 1)]]
                }
            }
        }
        var a = 通用话术1.split("--")
        return ["通用话术1", a[random(0, a.length - 1)]]
    }
}

function 随机滑动(y1, y2, time) {
    gesture(time, [random(500, 700), random(Math.round(y1 * h / 1920), Math.round(y1 * h / 1920) - 50)], [random(500, 700), h / 2], [random(500, 700), random(Math.round(y2 * h / 1920), Math.round(y2 * h / 1920) - 50)])
};

function 启动应用(应用名称, 版本号) {
    while (true) {
        if (app.launchApp(应用名称)) {
            while (app.getPackageName(应用名称) != currentPackage()) {
                app.launchApp(应用名称)
                log("正在启动:" + 应用名称);
                sleep(2000);
                if (app.getPackageName(应用名称) == currentPackage()) {
                    break
                }
            }
            log("成功启动:" + 应用名称);
            // while (应用版本(app.getPackageName(应用名称)) != 版本号) {
            //     toastLog(应用名称 + "版本不正确,请安装" + 版本号);
            //     sleep(2000);
            // }
            break
        } else {
            toastLog("没有安装:" + 应用名称 + ",请安装" + 应用名称 + 版本号);
            sleep(2000)
        }

    }
}

function 应用版本(package_name) {
    let pkgs = context.getPackageManager().getInstalledPackages(0).toArray();
    for (let i in pkgs) {
        if (pkgs[i].packageName.toString() === package_name) return pkgs[i].versionName;
    }
}

function 前台检测(应用名称) {
    是否检测 = true
    sleep(1000 * 30)
    while (true) {
        // var a = textMatches(/^[\s\S]*.*[^\s][\s\S]*$/).visibleToUser(true).find()
        // if (a) {
        //     var b = ""
        //     for (var i = 0; i <= a.length - 1; i++) {
        //         if (a[i].text().indexOf("秒") == -1 && a[i].text().indexOf(":") == -1 && a[i].text().indexOf("再按一次") == -1) {
        //             b = b + a[i].text()
        //         }
        //     }
        // }
        // sleep(1000 * 120)
        // var a = textMatches(/^[\s\S]*.*[^\s][\s\S]*$/).visibleToUser(true).find()
        // if (a) {
        //     var b1 = ""
        //     for (var i = 0; i <= a.length - 1; i++) {
        //         if (a[i].text().indexOf("秒") == -1 && a[i].text().indexOf(":") == -1 && a[i].text().indexOf("再按一次") == -1) {
        //             b1 = b1 + a[i].text()
        //         }
        //     }
        // }
        // sleep(1000 * 120)
        // var a = textMatches(/^[\s\S]*.*[^\s][\s\S]*$/).visibleToUser(true).find()
        // if (a) {
        //     var b2 = ""
        //     for (var i = 0; i <= a.length - 1; i++) {
        //         if (a[i].text().indexOf("秒") == -1 && a[i].text().indexOf(":") == -1 && a[i].text().indexOf("再按一次") == -1) {
        //             b2 = b2 + a[i].text()
        //         }
        //     }
        // }
        if (是否检测 == true) {
            if (currentPackage() != app.getPackageName(应用名称) || 主线程.isAlive() == false) {
                home()
                toastLog("当前app:" + 应用名称 + "运行异常,已重启运行!")
                主线程.interrupt()
                是否检测 = true
                主线程 = threads.start(function () {
                    home()
                    try {
                        启动应用(当前app, 当前app版本)
                        开始恰恰()
                    } catch (error) {
                        console.error("主线程,出现未知异常!")
                    }
                });
            } else {
                log("脚本运行中!")
                sleep(30000)
            }
        }
    }
}

function 悬浮窗() {
    幕布()
    悬浮窗 = floaty.window(
        <horizontal id="horizontal" margin="5dp" gravity="center">
            <button id="启动停止" width="40" height="40" margin="1dp" bg="#4FFF74" textSize="16sp" text="停止" textColor="#780EF1" />
            <button id="退出" width="40" height="40" margin="1dp" bg="#4FFF74" textSize="16sp" text="退出" textColor="#780EF1" />
            <button id="设置" width="40" height="40" margin="1dp" bg="#4FFF74" textSize="16sp" text="幕布" textColor="#780EF1" />
        </horizontal>
    );
    全局_显示悬浮窗按钮 = 悬浮窗
    悬浮窗.setPosition(device.width / 3, -50)
    悬浮窗.setSize(-2, -2)
    悬浮窗.exitOnClose();
    setInterval(() => { }, 1000);
    var 启动停止_x = 0, 启动停止_y = 0, 退出_x, 退出_y;
    var 启动停止_windowX, 启动停止_windowY, 退出_windowX, 退出_windowY;
    悬浮窗.启动停止.setOnTouchListener(function (view, event) {
        switch (event.getAction()) {
            case event.ACTION_DOWN:
                启动停止_x = event.getRawX();
                启动停止_y = event.getRawY();
                启动停止_windowX = 悬浮窗.getX();
                启动停止_windowY = 悬浮窗.getY();
                return true;
            case event.ACTION_MOVE:
                //移动手指时调整悬浮窗位置
                悬浮窗.setPosition(启动停止_windowX + (event.getRawX() - 启动停止_x),
                    启动停止_windowY + (event.getRawY() - 启动停止_y));
                return true;
            case event.ACTION_UP:
                //手指弹起时如果偏移很小则判断为点击
             
                if (Math.abs(event.getRawY() - 启动停止_y) < 5 && Math.abs(event.getRawX() - 启动停止_x) < 5) {
                    if (悬浮窗.启动停止.getText() == '启动') {
                        悬浮窗.启动停止.setText('停止');
                        主线程 = threads.start(function () {
                            while (true) {
                                启动应用(当前app, 当前app版本)
                                if (当前app == getAppName("com.qiaqiachat.vip")) {
                                    开始恰恰()
                                }
                            }
                        });
                        // if (相亲数据.get("前台检测x", true)) {
                        //     toastLog("您当前开启前台检测,出现异常会自动重新开始")
                        //     检测线程 = threads.start(function () {
                        //         前台检测(当前app, 当前app版本)
                        //     });
                        // }
                        toastLog("我又启动了")
                    } else {
                        悬浮窗.启动停止.setText('启动');
                        toastLog("停止脚本")
                        threads.shutDownAll()
                    }
                }
                return true;
        }
        return true;
    });
    //监听退出按钮消息//

    悬浮窗.退出.setOnTouchListener(function (view, event) {
        switch (event.getAction()) {
            case event.ACTION_DOWN:
                退出_x = event.getRawX();
                退出_y = event.getRawY();
                退出_windowX = 悬浮窗.getX();
                退出_windowY = 悬浮窗.getY();
                return true;
            case event.ACTION_MOVE:
                //移动手指时调整悬浮窗位置
                悬浮窗.setPosition(退出_windowX + (event.getRawX() - 退出_x),
                    退出_windowY + (event.getRawY() - 退出_y));
                return true;
            case event.ACTION_UP:
                //手指弹起时如果偏移很小则判断为点击
                if (Math.abs(event.getRawY() - 退出_y) < 5 && Math.abs(event.getRawX() - 退出_x) < 5) {
                    toast("程序已退出")
                    悬浮窗.close()
                    engines.stopAll()
                }
                return true;
        }
        return true;
    });
    悬浮窗.设置.setOnTouchListener(function (view, event) {
        switch (event.getAction()) {
            case event.ACTION_DOWN:
                退出_x = event.getRawX();
                退出_y = event.getRawY();
                退出_windowX = 悬浮窗.getX();
                退出_windowY = 悬浮窗.getY();
                return true;
            case event.ACTION_MOVE:
                //移动手指时调整悬浮窗位置
                悬浮窗.setPosition(退出_windowX + (event.getRawX() - 退出_x),
                    退出_windowY + (event.getRawY() - 退出_y));
                return true;
            case event.ACTION_UP:
                //手指弹起时如果偏移很小则判断为点击
                if (Math.abs(event.getRawY() - 退出_y) < 5 && Math.abs(event.getRawX() - 退出_x) < 5) {
                    if (os == false) {
                        dw = device.width; dh = device.height / 2; os = true
                    } else {
                        dw = 0; dh = 0; os = false
                    }
                    setInterval(() => {
                        win.setSize(dw, dh)
                        win.setPosition(0, 1)
                        win.setTouchable(false);
                    }, 1000);
                }
                return true;
        }
        return true;
    }
    );
    悬浮窗///
}

function 幕布() {
    // var os = false
    win = floaty.rawWindow(
        <vertical id="wins" alpha="1" gravity="center" visibility="visible" bg="#4CAF50" >
            {/* <text gravity="center" id="tttt" text="脚本运行日志" textSize="15sp" textColor="white" /> */}
            <com.stardust.autojs.core.console.ConsoleView id="console" h="*" />
        </vertical  >
    );
    ui.run(() => {
        // win.console.setConsole(runtime.console);
        win.input_container.setVisibility(android.view.View.GONE);
    });

}

function ini() {
    相亲数据 = storages.create("相亲数据");
    if (相亲数据.get("自定主动话术")) {
        主动话术 = 相亲数据.get("自定主动话术", "")
    } else {
        主动话术 = 相亲数据.get("主动话术", "出现错误,请重启软件重新加载!")
    }
    if (相亲数据.get("自定通用话术")) {
        通用话术 = 相亲数据.get("自定通用话术", "")
    } else {
        通用话术 = 相亲数据.get("通用话术", "出现错误,请重启软件重新加载!")
    }
    if (相亲数据.get("自定关键词话术")) {
        关键词话术 = 相亲数据.get("自定关键词话术", "")
    } else {
        关键词话术 = 相亲数据.get("关键词话术", "出现错误,请重启软件重新加载!")
    }
     // // if (files.copy("./主话术.txt", "/sdcard/主话术.txt")) {
        if (files.exists("/sdcard/主话术.txt")) {
            var 文本话术 = files.read("/sdcard/主话术.txt", encoding = "utf-8")
            主话术 = 文本话术.split("\r\n");
        } else {
            while (!files.copy("./主话术.txt", "/sdcard/主话术.txt")) {
                toast("没有在手机根目录下找到主话术.txt文件,请确认话术文件存在");
                sleep(2000)
            }
        }
    // // }
    // // if (files.copy("./通用话术.txt", "/sdcard/通用话术.txt")) {
        if (files.exists("/sdcard/通用话术.txt")) {
            var 文本话术 = files.read("/sdcard/通用话术.txt", encoding = "utf-8")
            通用话术1 = 文本话术
        } else {
            while (!files.copy("./通用话术.txt", "/sdcard/通用话术.txt")) {
                toast("没有在手机根目录下找到通用话术.txt文件,请确认话术文件存在");
                sleep(2000)
            }
        }
    // // }
    // // if (files.copy("./主动发送.txt", "/sdcard/主动发送.txt")) {
        if (files.exists("/sdcard/主动发送.txt")) {
            var 文本话术 = files.read("/sdcard/主动发送.txt", encoding = "utf-8")
            主动发送 = 文本话术
        } else {
            while (!files.copy("./主动发送.txt", "/sdcard/主动发送.txt")) {
                toast("没有在手机根目录下找到主动发送.txt文件,请确认话术文件存在");
                sleep(2000)
            }
        }
    // // }
    h = device.height
    w = device.width
    // device.keepScreenDim
    threads.start(function () {
        auto.waitFor();
    });
}

function 日志显示(){
    window = floaty.rawWindow(
        <vertical id="win" gravity="center" visibility="visible" bg="#60000000" >
            {/* <text gravity="center" id="tttt" text="脚本运行日志" textSize="0sp" textColor="#f44336" /> */}
            <com.stardust.autojs.core.console.ConsoleView id="console" h="*" />
        </vertical  >
    );
    let c = new android.util.SparseArray();
    let Log = android.util.Log;
    c.put(Log.VERBOSE, new java.lang.Integer(colors.parseColor("#00FFD7")));
    c.put(Log.DEBUG, new java.lang.Integer(colors.parseColor("#00FFD7")));
    c.put(Log.INFO, new java.lang.Integer(colors.parseColor("#ff64dd17")));
    c.put(Log.WARN, new java.lang.Integer(colors.parseColor("#ff2962ff")));
    c.put(Log.ERROR, new java.lang.Integer(colors.parseColor("#ffd50000")));
    c.put(Log.ASSERT, new java.lang.Integer(colors.parseColor("#ffff534e")));
    window.console.setColors(c);
    ui.run(() => {
        window.console.setConsole(runtime.console);
        window.input_container.setVisibility(android.view.View.GONE);
    });
}

function 点击(节点) {
    var nodex = 节点.bounds().centerX()
    var nodey = 节点.bounds().centerY()
    if (nodex > 0 && nodey > 0) {
        click(nodex, nodey)
    }
}
function 随机滑动(y1, y2, time) {
    h = device.height
    w = device.width
    gesture(time, [random(300, 500), random(Math.round(y1 * h / 1920), Math.round(y1 * h / 1920) - 50)], [random(300, 600), h / 2], [random(300, 600), random(Math.round(y2 * h / 1920), Math.round(y2 * h / 1920) - 50)])
};

//滑动功能函数
function bezier_curves(cp, t) {
    cx = 3.0 * (cp[1].x - cp[0].x);
    bx = 3.0 * (cp[2].x - cp[1].x) - cx;
    ax = cp[3].x - cp[0].x - cx - bx;
    cy = 3.0 * (cp[1].y - cp[0].y);
    by = 3.0 * (cp[2].y - cp[1].y) - cy;
    ay = cp[3].y - cp[0].y - cy - by;

    tSquared = t * t;
    tCubed = tSquared * t;
    result = {
        "x": 0,
        "y": 0
    };
    result.x = (ax * tCubed) + (bx * tSquared) + (cx * t) + cp[0].x;
    result.y = (ay * tCubed) + (by * tSquared) + (cy * t) + cp[0].y;
    return result;
};

//仿真随机带曲线滑动  
//qx, qy, zx, zy, time 代表起点x,起点y,终点x,终点y,过程耗时单位毫秒
function sml_move(qx, qy, zx, zy, time) {
    var xxy = [time];
    var point = [];
    var dx0 = {
        "x": qx,
        "y": qy
    };

    var dx1 = {
        "x": random(qx - 100, qx + 100),
        "y": random(qy, qy + 50)
    };
    var dx2 = {
        "x": random(zx - 100, zx + 100),
        "y": random(zy, zy + 50),
    };
    var dx3 = {
        "x": zx,
        "y": zy
    };
    for (var i = 0; i < 4; i++) {

        eval("point.push(dx" + i + ")");

    };
    // log(point[3].x)

    for (let i = 0; i < 1; i += 0.08) {
        xxyy = [parseInt(bezier_curves(point, i).x), parseInt(bezier_curves(point, i).y)]

        xxy.push(xxyy);

    }

    // log(xxy);
    gesture.apply(null, xxy);
    log("有问题联系: wx_zhibo8888")
};

平台

以上代码为自行编写 ,如果需要打包。采用autojs pro,将代码内容复制到autojs 中,即可直接运行

安装方式

  • 下载apk
  • 将 apk 通过数据线复制到手机中
  • 打开手机文件管理器,找打刚才复制在手机中的目录
  • 点击apk,进行安装

使用方式

安装apk后,点击apk 图标即可启动软件

  • 启动软件
  • 如果有授权弹窗,点击允许即可
  • 然后在搜索框中,输入需要一对一聊天的平台
  • 点击搜索选项

如果提示要求开启无障碍权限。点击确定后,你需要找到软件对应的无障碍服务,并点击开启

本文标签: 互动高山流水脚本源码伴侣