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

相关文章

python利用backoff实现异常自动重试详解

《python利用backoff实现异常自动重试详解》backoff是一个用于实现重试机制的Python库,通过指数退避或其他策略自动重试失败的操作,下面小编就来和大家详细讲讲如何利用backoff实... 目录1. backoff 库简介2. on_exception 装饰器的原理2.1 核心逻辑2.2

Java如何根据文件名前缀自动分组图片文件

《Java如何根据文件名前缀自动分组图片文件》一大堆文件(比如图片)堆在一个目录下,它们的命名规则遵循一定的格式,混在一起很难管理,所以本文小编就和大家介绍一下如何使用Java根据文件名前缀自动分组图... 目录需求背景分析思路实现代码输出结果知识扩展需求一大堆文件(比如图片)堆在一个目录下,它们的命名规

使用Python实现实时金价监控并自动提醒功能

《使用Python实现实时金价监控并自动提醒功能》在日常投资中,很多朋友喜欢在一些平台买点黄金,低买高卖赚点小差价,但黄金价格实时波动频繁,总是盯着手机太累了,于是我用Python写了一个实时金价监控... 目录工具能干啥?手把手教你用1、先装好这些"食材"2、代码实现讲解1. 用户输入参数2. 设置无头浏

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

pytorch自动求梯度autograd的实现

《pytorch自动求梯度autograd的实现》autograd是一个自动微分引擎,它可以自动计算张量的梯度,本文主要介绍了pytorch自动求梯度autograd的实现,具有一定的参考价值,感兴趣... autograd是pytorch构建神经网络的核心。在 PyTorch 中,结合以下代码例子,当你

Python如何自动生成环境依赖包requirements

《Python如何自动生成环境依赖包requirements》:本文主要介绍Python如何自动生成环境依赖包requirements问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录生成当前 python 环境 安装的所有依赖包1、命令2、常见问题只生成当前 项目 的所有依赖包1、

使用Python实现全能手机虚拟键盘的示例代码

《使用Python实现全能手机虚拟键盘的示例代码》在数字化办公时代,你是否遇到过这样的场景:会议室投影电脑突然键盘失灵、躺在沙发上想远程控制书房电脑、或者需要给长辈远程协助操作?今天我要分享的Pyth... 目录一、项目概述:不止于键盘的远程控制方案1.1 创新价值1.2 技术栈全景二、需求实现步骤一、需求

Spring Boot项目中结合MyBatis实现MySQL的自动主从切换功能

《SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能》:本文主要介绍SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能,本文分步骤给大家介绍的... 目录原理解析1. mysql主从复制(Master-Slave Replication)2. 读写分离3.