淘宝直播间 自动发送消息

179 阅读1分钟
package com.gy.accessibilitydemo

import android.accessibilityservice.AccessibilityService
import android.os.Build.VERSION_CODES.P
import android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.util.Log
import android.view.accessibility.AccessibilityEvent
import android.view.accessibility.AccessibilityNodeInfo
import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction
import android.view.accessibility.AccessibilityNodeInfo.FOCUS_INPUT

class TBAccessibility : AccessibilityService() {

    var inputView : AccessibilityNodeInfo? = null
    lateinit var rootWindow : AccessibilityNodeInfo
    var handler = Handler(Looper.getMainLooper())
    override fun onAccessibilityEvent(event: AccessibilityEvent?) {
        rootWindow = rootInActiveWindow;
//        Log.i("ccccccccccc","rootWindow=====${rootWindow.className}")
//        val childCount = rootWindow.childCount

        val searchChildList = rootWindow.findAccessibilityNodeInfosByText("说点什么")
        Log.i("cccccccccccc","searchChildList======$searchChildList")
        if(searchChildList.isNotEmpty()){
            val searchFirst = searchChildList[0];
            Log.i("ccccccccc","searchFirst====${searchFirst.className}")
            if(searchFirst.isClickable){
                searchFirst.performAction(AccessibilityAction.ACTION_CLICK.id)
            }
        }
//        val inputView = rootWindow.findAccessibilityNodeInfosByText("平台提倡文明用语,请温柔发言哦~")
        if(inputView == null){
            val inputView = rootWindow.findFocus(FOCUS_INPUT)
            if(inputView != null){
                this.inputView = inputView
//                inputView.text = "1"
                handler.postDelayed({
                    loopSendMsg()
                },1000)
            }
        }
        Log.i("cccccccccccc","inputView======$inputView")
    }

    private fun loopSendMsg(){
        this.inputView?.performAction(AccessibilityAction.ACTION_SET_TEXT.id, Bundle().apply {
            putCharSequence(AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE,"1")
        })
        val sendBtnList =  rootWindow.findAccessibilityNodeInfosByText("发送")
        if(sendBtnList.isNotEmpty()){
            sendBtnList[0].performAction(AccessibilityAction.ACTION_CLICK.id)
        }
        handler.postDelayed({
            loopSendMsg()
        },2000)
    }

    override fun onInterrupt() {

    }
}