AccessibilityService 手机联通营业厅自动签到器

2024-02-09 20:32

本文主要是介绍AccessibilityService 手机联通营业厅自动签到器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.手机联通营业厅自动签到器

ui界面

2. Demo下载

https://github.com/sufadi/AccessibilityServiceMonitor

3. 实现思路

3.1 打开联通界面
    public static void startLiangTongUI(Context mContext) {Intent intent = new Intent();intent.setPackage("com.sinovatech.unicom.ui");intent.setClassName("com.sinovatech.unicom.ui", "com.sinovatech.unicom.basic.ui.MainActivity");mContext.startActivity(intent);}

3.2 点击主界面的联通界面的签到按钮

主界面的签到按钮

实现思路,根据resource id 进行控件的点选,即findAccessibilityNodeInfosByViewId

    /*** 跳转到签到界面* @param nodeInfo* @param packageName* @param className*/public static void startLiangTongQianDaoUI(AccessibilityNodeInfo nodeInfo, String packageName, String className) {if (nodeInfo == null) {return;}CommonUtil.clickBtnByResId(nodeInfo, "com.sinovatech.unicom.ui:id/home_header_long_qiandao_image");}public static void clickBtnByResId(AccessibilityNodeInfo nodeInfo, String id) {if (nodeInfo != null) {// 该界面下所有 ViewId 节点List<AccessibilityNodeInfo> list = nodeInfo.findAccessibilityNodeInfosByViewId(id);for (AccessibilityNodeInfo item : list) {if (item.isClickable()) {item.performAction(AccessibilityNodeInfo.ACTION_CLICK);Log.d(Config.TAG, "clickBtnByResId = " + item.toString());break;}}}}

3.3 点击WebView的联通界面的签到按钮

webview签到按钮

这里的思路是先找到 “android.webkit.WebView”,然后在 webView 中进一步找到签到按钮,对应上面图示。

    /*** 点击自动签到** @param nodeInfo* @param packageName* @param className*/public static void policy(AccessibilityNodeInfo nodeInfo, String packageName, String className) {if (nodeInfo == null) {return;}if ("com.sinovatech.unicom.ui".equals(packageName)) {for (int i = 0; i < nodeInfo.getChildCount(); i++) {AccessibilityNodeInfo child = nodeInfo.getChild(i);if ("android.webkit.WebView".equals(child.getClassName())) {Log.d(Config.TAG, "nodeInfo = " + nodeInfo.toString());findEveryViewNode(child);break;}}}}public static void findEveryViewNode(AccessibilityNodeInfo node) {if (null != node && node.getChildCount() > 0) {for (int i = 0; i < node.getChildCount(); i++) {AccessibilityNodeInfo child =  node.getChild(i);// 有时 child 为空if (child == null) {continue;}String className = child.getViewIdResourceName();if ("qd_xq".equals(className)) {Log.d(Config.TAG, "Button 的节点数据 text = " + child.getText() + ", descript = " + child.getContentDescription() + ", className = " + child.getClassName() + ", resId = " + child.getViewIdResourceName());boolean isClickable = child.isClickable();if ( isClickable) {child.performAction(AccessibilityNodeInfo.ACTION_CLICK);Log.d(Config.TAG, "联通签到 成功点击");}}// 递归调用findEveryViewNode(child);}}}

具体日子打印如下

2018-08-28 17:25:04.541 28655-28655/? D/suhuazhi: Button 的节点数据 text = , descript = null, className = android.view.View, resId = qd_xq
2018-08-28 17:25:04.543 28655-28655/? D/suhuazhi: 联通签到 成功点击

这篇关于AccessibilityService 手机联通营业厅自动签到器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/695213

相关文章

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

Python3 BeautifulSoup爬虫 POJ自动提交

POJ 提交代码采用Base64加密方式 import http.cookiejarimport loggingimport urllib.parseimport urllib.requestimport base64from bs4 import BeautifulSoupfrom submitcode import SubmitCodeclass SubmitPoj():de

cell phone teardown 手机拆卸

tweezer 镊子 screwdriver 螺丝刀 opening tool 开口工具 repair 修理 battery 电池 rear panel 后盖 front and rear cameras 前后摄像头 volume button board 音量键线路板 headphone jack 耳机孔 a cracked screen 破裂屏 otherwise non-functiona

Shell脚本实现自动登录服务器

1.登录脚本 login_server.sh #!/bin/bash# ReferenceLink:https://yq.aliyun.com/articles/516347#show all host infos of serverList.txtif [[ -f ./serverList.txt ]]thenhostNum=`cat ./serverList.txt | wc -l`e

Jenkins 通过 Version Number Plugin 自动生成和管理构建的版本号

步骤 1:安装 Version Number Plugin 登录 Jenkins 的管理界面。进入 “Manage Jenkins” -> “Manage Plugins”。在 “Available” 选项卡中搜索 “Version Number Plugin”。选中并安装插件,完成后可能需要重启 Jenkins。 步骤 2:配置版本号生成 打开项目配置页面。在下方找到 “Build Env

以后写代码都是AI自动写了,Cursor+Claude-3.5-Sonnet,Karpathy 点赞的 AI 代码神器。如何使用详细教程

Cursor 情况简介 AI 大神 Andrej Karpathy 都被震惊了!他最近在试用 VS Code Cursor +Claude Sonnet 3.5,结果发现这玩意儿比 GitHub Copilot 还好用! Cursor 在短短时间内迅速成为程序员群体的顶流神器,其背后的原因在于其默认使用 OpenAI 投资的 Claude-3.5-Sonnet 模型,这一举动不仅改变了代码生成

想要从OPPO手机恢复数据?免费OPPO照片视频恢复软件

此实用程序可帮助那些寻找以下内容的用户: 在OPPO手机中格式化存储卡后可以恢复图片吗?我删除了 OPPO上的视频和图片,我感觉很糟糕,因为里面有我在拉斯维加斯拍摄的视频和照片 免费OPPO照片视频恢复软件 您能恢复OPPO上已删除的照片吗?我不小心格式化了OPPO SD 卡,有希望恢复已删除的照片吗? 救命!我在清理时删除了我的照片,我的问题是是否有任何免费软件可以从OPPO中恢复已

在 Qt Creator 中,输入 /** 并按下Enter可以自动生成 Doxygen 风格的注释

在 Qt Creator 中,当你输入 /** 时,确实会自动补全标准的 Doxygen 风格注释。这是因为 Qt Creator 支持 Doxygen 以及类似的文档注释风格,并且提供了代码自动补全功能。 以下是如何在 Qt Creator 中使用和显示这些注释标记的步骤: 1. 自动补全 Doxygen 风格注释 在 Qt Creator 中,你可以这样操作: 在你的代码中,将光标放在

Jenkins自动构建部署项目

1. 楔子 在实际开发中,经常需要编译、静态代码检查、自动化测试、打包、部署、启动等一连串重复机械的动作,浪费时间、而且容易出错,而Jenkins就是专门Continuous integration(CI)/ Continuous Deploy(CD)开源工具,本文简单介绍Jenkins的使用。 在线无安装免费试用Jenkins:http://www.jenkins.org.cn/test

【Spring Boot】 SpringBoot自动装配-Condition

目录 一、前言二、 定义2.1 @Conditional2.2 Condition2.2.1 ConditionContext 三、 使用说明3.1 创建项目3.1.1 导入依赖3.1.2 添加配置信息3.1.3 创建User类3.1.4 创建条件实现类3.1.5 修改启动类 3.2 测试3.2.1 当user.enable=false3.2.2 当user.enable=true 3.3