iapp吧 关注:16,004贴子:191,257

【无障碍】无障碍简单使用教程

取消只看楼主收藏回复

无障碍这个功能已经出来很久了,不过到现在我都没看见什么无障碍教程,成品应用也只看见过扣字助手和扛把子的红包助手,所以今天我写个无障碍的简单使用教程,希望大家支持


IP属地:广东来自Android客户端1楼2019-08-12 14:03回复
    工具:
    开发者助手(酷安可以找到)
    mt管理器
    iApp
    支持无障碍的手机一台
    一颗勇敢的心


    IP属地:广东来自Android客户端2楼2019-08-12 14:07
    收起回复
      首先我们需要确定自己要监听的是什么应用,比如这里我测试的是贴吧极速版7.0.0.0,包名是com.baidu.tieba


      IP属地:广东来自Android客户端3楼2019-08-12 14:12
      回复
        打开iapp,创建一个模块名为ays_service,输入这些:
        //初始化事件方法 onsc 启动时回调一次
        fn onsc()
        s pns = "你要监听的包名"
        javass(a, null, "com.iapp.app.ays.pns", pns)
        javass(a, null, "com.iapp.app.ays.nt", 1000)
        end fn


        IP属地:广东来自Android客户端4楼2019-08-12 14:16
        收起回复
          然后你需要创建一个函数on:
          //事件方法 on 实时回调变化事件
          fn on(e)
          end fn
          这个函数会在被监听的应用发生活动时回调


          IP属地:广东来自Android客户端5楼2019-08-12 14:18
          回复
            比如我们需要监听的是贴吧极速版,包名是com.baidu.tieba_mini,需要实现的功能是当贴吧在主界面时,点击搜索框,这个时候我们就需要开发者助手了


            IP属地:广东来自Android客户端6楼2019-08-12 14:21
            回复
              利用开发者助手,你可以看见贴吧极速版的主界面名com.baidu.tieba.tblauncher.MainTabActivity


              IP属地:广东来自Android客户端7楼2019-08-12 14:24
              回复
                然后通过修改iapp的示例,我们得到了这段代码:
                java(node, ays, "com.iapp.app.ays.gall", "AccessibilityEvent", e)
                //判断事件来源是不是贴吧
                java(gpn, ays, "com.iapp.app.ays.gpn", "AccessibilityEvent", e)
                f(gpn == "com.baidu.tieba_mini") {
                java(gcn, ays, "com.iapp.app.ays.gcn", "AccessibilityEvent", e)
                f(gcn == "com.baidu.tieba.tblauncher.MainTabActivity") {
                //贴吧极速版主界面
                java(nodeList, ays, "com.iapp.app.ays.id", "AccessibilityNodeInfo", node, "String", "com.baidu.tieba_mini:id/search_root")
                java(null, ays, "com.iapp.app.ays.ck", "java.util.List", nodeList, "int", 16)
                //点击搜索框
                }
                }
                java(b, ays, "com.iapp.app.ays.re", "AccessibilityNodeInfo", node)
                //使用完了以后释放node


                IP属地:广东来自Android客户端10楼2019-08-12 14:38
                回复
                  id的格式为包名:/开发者助手获取到的id名(去掉R.id.)


                  IP属地:广东来自Android客户端11楼2019-08-12 14:39
                  回复
                    然后把手册里的这段代码粘贴到这来,打包,安装,到系统设置里开启无障碍,然后打开贴吧极速版看效果吧




                    IP属地:广东来自Android客户端13楼2019-08-12 14:46
                    回复
                      行了我先休息会,等会实现自动在搜索框输入文字病点击「前往」按钮


                      IP属地:广东来自Android客户端14楼2019-08-12 14:52
                      收起回复
                        @🎃幼儿园扛把子 又被吞了


                        IP属地:广东来自Android客户端24楼2019-08-13 09:59
                        回复
                          号回来了


                          IP属地:广东来自Android客户端29楼2019-08-13 19:21
                          回复
                            让我们解析一下每一行代码:
                            java(node, ays, "com.iapp.app.ays.gall", "AccessibilityEvent", e)
                            这行是获取对应的根节点,通过这个节点可以进行一系列操作
                            java(gpn, ays, "com.iapp.app.ays.gpn", "AccessibilityEvent", e)
                            获取事件源包名,可以判断出这个事件是由哪个应用发出的
                            java(gcn, ays, "com.iapp.app.ays.gcn", "AccessibilityEvent", e)
                            获取事件源的类名,比如如果是与界面有关的就是这个界面的类名


                            IP属地:广东来自Android客户端30楼2019-08-13 19:32
                            回复
                              java(nodeList, ays, "com.iapp.app.ays.id", "AccessibilityNodeInfo", node, "String", "com.baidu.tieba_mini:id/search_root")
                              这行代码是根据id获取对应的节点,需要注意的是返回的是一个数据列表,因为可能同时存在多个符合要求的节点
                              如果失败的话试试用数字id
                              java(null, ays, "com.iapp.app.ays.ck", "java.util.List", nodeList, "int", 16)
                              点击给出的所有节点,16表示单击,其他事件对应的数字代码可以在帮助里找到
                              帮助里还提供了一个快速的点击对应id的节点的方法
                              也就是说点击可以这样写
                              java(null, ays, "com.iapp.app.ays.ckid", "AccessibilityNodeInfo", node, "int", 16, "String", "com.baidu.tieba_mini:id/search_root")


                              IP属地:广东来自Android客户端31楼2019-08-13 19:42
                              回复