当前位置: 首页 > news >正文

网站title keyword description网站建设的美图

网站title keyword description,网站建设的美图,一个网站的二级目录在另一台服务器上_怎么做,西宁微网站建设多少钱原理#xff1a; 通过监听窗口改变事件#xff0c;监听目标应用#xff0c;通过视图ID#xff08;或文本、或描述、或其他如坐标之类的#xff09;找到目标视图#xff0c;使用无障碍动作点击方法点击它 无障碍服务实现#xff1a; 1、写一个自己的无障碍服务继承Acc…原理 通过监听窗口改变事件监听目标应用通过视图ID或文本、或描述、或其他如坐标之类的找到目标视图使用无障碍动作点击方法点击它 无障碍服务实现 1、写一个自己的无障碍服务继承AccessibilityService public class AppWindowChangeService extends AccessibilityService {private static final String TAG MyAppWindowChangeService;Overridepublic void onAccessibilityEvent(AccessibilityEvent accessibilityEvent) {if (accessibilityEvent null || accessibilityEvent.getPackageName() null) return;CharSequence packageName accessibilityEvent.getPackageName();CharSequence className accessibilityEvent.getClassName();//监听当前窗口变化获取Packageif(accessibilityEvent.getEventType() AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED){Log.i(TAG, onAccessibilityEvent: packageName packageName, className className);} }Overridepublic void onInterrupt() {Log.e(TAG, onInterrupt);}} 2、AndroidManifest.xml声明这个服务 serviceandroid:name.AppWindowChangeServiceandroid:configChangeskeyboard|keyboardHidden|mcc|mnc|navigation|orientation|screenSize|screenLayout|smallestScreenSize|fontScale|locale|uiModeandroid:enabledtrueandroid:exportedfalseandroid:permissionandroid.permission.BIND_ACCESSIBILITY_SERVICEintent-filteraction android:nameandroid.accessibilityservice.AccessibilityService//intent-filtermeta-dataandroid:nameandroid.accessibilityserviceandroid:resourcexml/detection_service_config//service 3、在xml新建一个配置资源做这个无障碍服务的相关配置 ?xml version1.0 encodingutf-8? accessibility-servicexmlns:androidhttp://schemas.android.com/apk/res/androidandroid:accessibilityEventTypestypeWindowStateChanged|typeViewClickedandroid:accessibilityFeedbackTypefeedbackGenericandroid:canRetrieveWindowContenttrueandroid:accessibilityFlagsflagIncludeNotImportantViews|flagReportViewIds|flagRetrieveInteractiveWindows / 这里监听类型我还多加了一个typeViewClicked后面可以用来找你点击的view的相关信息。 启用功能 自行找到系统设置的无障碍服务功能界面或者使用代码做跳转到无障碍服务界面 Intent intent new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS);intent.setPackage(com.android.settings);startActivity(intent); 开启自己app的无障碍服务开关无障碍服务就会启动起来了。 实践 举个栗子监听美团外卖启动页的广告的跳过按钮 import android.accessibilityservice.AccessibilityService; import android.os.Handler; import android.util.Log; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityNodeInfo; import android.widget.Toast;public class AppWindowChangeService extends AccessibilityService {private static final String TAG MyAppWindowChangeService;private static final String TARGET_PACKAGE_NAME com.sankuai.meituan.takeoutnew;private static final String TARGET_VIEW_ID com.sankuai.meituan.takeoutnew:id/ll_skip;private final Runnable runnable this::findAndClickTargetView;private final Handler handler new Handler();Overridepublic void onAccessibilityEvent(AccessibilityEvent accessibilityEvent) {if (accessibilityEvent null || accessibilityEvent.getPackageName() null) return;CharSequence packageName accessibilityEvent.getPackageName();CharSequence className accessibilityEvent.getClassName();//监听当前窗口变化获取Packageif(accessibilityEvent.getEventType() AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED){if (TARGET_PACKAGE_NAME.equals(packageName)) {Log.i(TAG, Target package opened: packageName);// 查找并点击目标视图handler.removeCallbacks(runnable);handler.postDelayed(runnable, 200);}} else if (accessibilityEvent.getEventType() AccessibilityEvent.TYPE_VIEW_CLICKED) {Log.i(TAG, onAccessibilityEvent: packageName packageName, className className);Log.e(TAG, onAccessibilityEvent: 点击view className);AccessibilityNodeInfo source accessibilityEvent.getSource();if (source ! null) {String viewId source.getViewIdResourceName();CharSequence text source.getText();CharSequence contentDescription source.getContentDescription();Log.e(TAG, View ID: viewId);Log.e(TAG, Text: text);Log.e(TAG, Content Description: contentDescription);source.recycle(); // 释放资源}}}private void findAndClickTargetView() {AccessibilityNodeInfo rootNode getRootInActiveWindow();Log.i(TAG, findAndClickTargetView: rootNode rootNode);if (rootNode ! null) {AccessibilityNodeInfo targetNode findNodeById(rootNode, TARGET_VIEW_ID);Log.i(TAG, findNodeById: targetNode targetNode);if (targetNode ! null) {Log.i(TAG, targetNode ! null, start click);performClick(targetNode);targetNode.recycle();}rootNode.recycle();}}private AccessibilityNodeInfo findNodeById(AccessibilityNodeInfo rootNode, String viewId) {if (rootNode.getViewIdResourceName() ! null rootNode.getViewIdResourceName().equals(viewId)) {return AccessibilityNodeInfo.obtain(rootNode);}for (int i 0; i rootNode.getChildCount(); i) {AccessibilityNodeInfo childNode rootNode.getChild(i);if (childNode ! null) {AccessibilityNodeInfo result findNodeById(childNode, viewId);if (result ! null) {return result;}childNode.recycle();}}return null;}private void performClick(AccessibilityNodeInfo node) {if (node ! null node.isClickable()) {node.performAction(AccessibilityNodeInfo.ACTION_CLICK);Log.i(TAG, Clicked on node: node);Toast.makeText(this, 自动点击, Toast.LENGTH_SHORT).show();} else {Log.i(TAG, Node is not clickable: node);}}Overridepublic void onInterrupt() {Log.e(TAG, onInterrupt);}} 目标包名和目标viewID是我通过点击的时候输出打印看到的给他倒推回去记录到代码当中。 查找view的动作需要做延时获取实测马上去获取是获取不到的。 实际实现中可以记录多个包名以及对应的需要点击的视图做李跳跳的效果。 Android高版本注意如果打开其他App之后日志不打印回到自己应用之后才会一次性把之前的动作日志打印出来的情况需要将应用的省电策略改为无限制这个问题网上都没有提到之前一直不生效困扰了我好久。
http://www.hkea.cn/news/14503071/

相关文章:

  • 建站公司怎么备案深圳做电商平台网站建设
  • 怎么查网站的外链数量wordpress icomoon
  • 网站搭建报价单工作5年体重飙400斤
  • 网页策划书 网站建设定位南通哪里做网站
  • 如何做网站卖产品做网站职业咋样
  • 外贸网站定制开发公司请人做的网站打不开
  • 网站给他人做付刑事责任网站的文案
  • 淘宝网站建设可信吗收费网站空间
  • wordpress会员提成插件seo站长常用工具
  • 网站 微信如何查看网站开发者
  • 建设网站是不是要买服务器怎样做网站首页
  • 哪里建设品牌网站自己设计服装的app免费
  • 福州建设厅网站自建论坛要多少钱
  • 分析网站建设流程网站综合排名信息查询
  • 网站建设模板 源码 特效成都快速做网站
  • 老网站改版启用二级域名山东手机网站建设报价
  • 高端网站建设公司名称光谷软件园企业网站建设公司
  • 怎么做网页关联小程序廊坊首位关键词优化电话
  • 黄冈网站建设与推广哪家好长沙seo外包优化
  • 在湖南建设人力资源网站技术支持 滕州网站建设
  • 搭建论坛网站使用的系统yw开头的网络黄页
  • 网站开发项目架构wordpress登录页面logo删除
  • 猎头公司网站建设怎么建网站新手入门
  • 商业网站初期建设资金预算wordpress菜单锚点
  • 网站开发初级技术人员网站程序开发外包
  • 长春建一个网站大概要多少钱公司做网站
  • 法国化妆品进口报关做网站深圳网络安全公司排名
  • 网站找建站公司头条新闻 免费下载
  • 网站个性化设计链接买卖是什么意思
  • 办个网站卖什么好处如何免费做视频二维码永久