安卓无障碍使用,实现抖音关注、直播点赞、视频点赞

运用安卓无障碍实现抖音关注

 ​​​​​​​​​​​​​​​​​​​​​

.next(StepTag.STEP_3) {
        val packageName = Assists.getPackageName()
        if (packageName != targetPkg) {
            overLog("未成功启动,重新启动")
            return@next Step.get(StepTag.STEP_1)
        }
        OverManager.log("进入搜索")
        OverManager.log("输入要关注的抖音号")
        Assists.findByTags("android.widget.EditText").forEach {
            it.performAction(AccessibilityNodeInfo.ACTION_FOCUS)
            it.paste("")//输入关注的抖音号
            return@next Step.get(StepTag.STEP_4)
        }
        return@next Step.repeat
    }.next(StepTag.STEP_4) {
        Assists.findById("com.ss.android.ugc.aweme.lite:id/nuk").firstOrNull()?.let {
            OverManager.log("点击【搜索】")
            it.gestureClick()
            runIO { delay(3000) }
            return@next Step.get(StepTag.STEP_5)
        }
        return@next Step.repeat
    }.next(StepTag.STEP_5) {
    OverManager.log("展示搜索结果")
    OverManager.log("准备点击【关注】按钮")
    Assists.findByText("关注").forEach {
        if (it.contentDescription != null && it.containsText("关注按钮")){
            it.gestureClick()
            OverManager.log("关注成功")
            Assists.back()
            return@next Step.none
            }
    }

直播点赞

 .next(StepTag.STEP_3) {
            val packageName = Assists.getPackageName()
            if (packageName != targetPkg) {
                overLog("未成功启动,重新启动")
                return@next Step.get(StepTag.STEP_1)
            }
                Assists.findByText("直播中").forEach {
                    if (it.isVisibleToUser && it.containsText("直播中") && it.text is String) {
                        overLog(it.text as String)
//                        it.parent.parent.click()
                        runIO { delay(250) }
                        return@next Step.get(StepTag.STEP_4)
                    }
                }
            AssistsWindowManager.switchNotTouchableAll()
            runIO { delay(250) }
            val x = ScreenUtils.getAppScreenWidth() / 2F
            val distance = ScreenUtils.getAppScreenHeight() / 2F
            val startY = distance + distance / 2F
            val endY = distance - distance / 2F
            overLog("滑动:$x/$startY,$x/$endY")
            Assists.gesture(
                floatArrayOf(x, startY), floatArrayOf(x, endY), 0, 200L
            )
            AssistsWindowManager.switchTouchableAll()
            runIO { delay(2000) }

            return@next Step.repeat
        }

视频点赞

next(StepTag.STEP_4) {
//                runIO { delay(250) }
                val home = Assists.findById("com.ss.android.ugc.aweme.lite:id/dlu").firstOrNull()
                if (home == null) {
                    OverManager.log("不是首页")
                    Assists.back()
                    return@next Step.get(StepTag.STEP_3)
                }
                val x = ScreenUtils.getAppScreenWidth()/2
                val y = ScreenUtils.getAppScreenHeight()/2
                OverManager.log("开始点赞 x:$x y:$y")
                // 点击 20 次
                for (i in 1..10) {
                    // 生成 x 和 y 坐标的随机偏移值,范围是 [-250, 250] 之间的随机数
                    val randomXOffset = Random.nextInt(-250, 251)  // -250 到 250 之间的随机数
                    val randomYOffset = Random.nextInt(-250, 251)  // -250 到 250 之间的随机数

                    // 计算新的点击位置
                    val clickX = x + randomXOffset
                    val clickY = y + randomYOffset

                    // 触发点击
                    Assists.gestureClick(clickX.toFloat(), clickY.toFloat(), 10)
                    runIO { delay(50) }  // 延迟 250 毫秒后执行下一次点击
                }
                runIO { delay(1000) }
                AssistsWindowManager.switchNotTouchableAll()
                runIO { delay(250) }
                val startY = y + y / 2F
                val endY = y - y / 2F
                overLog("滑动:$x/$startY,$x/$endY")
                Assists.gesture(
                    floatArrayOf(x.toFloat(), startY), floatArrayOf(x.toFloat(), endY), 0, 200L
                )
                AssistsWindowManager.switchTouchableAll()
                runIO { delay(1000) }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值