wangchunlei187 2018-12-18 02:52 采纳率: 0%
浏览 1808

AccessibilityService获取初始页面元素获取不到

利用AccessibilityService写了一个 游戏登录器,。qq账号自动登录功能

从QQ飞车 跳转到 QQ授权登录。两个应用。从1图点击qq登录到2图时

1图片说明

了获取不到qq授权账号登录的节点元素。求大神帮忙看下

 nowPackageName = event.getPackageName().toString();
        if (nowPackageName.equals("com.tencent.mobileqq")) {
            className = event.getClassName().toString();
            System.out.println(className);
            AccessibilityNodeInfo info= event.getSource();
            Toast.makeText(MyAccessibilityService.this, className, Toast.LENGTH_LONG).show();
            switch (className)
            {
                case "com.tencent.open.agent.AuthorityActivity":
                    try {
                        Thread.sleep(3000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    Toast.makeText(MyAccessibilityService.this, String.valueOf(  info.getChildCount()), Toast.LENGTH_LONG).show();

                    for (int i=0;i<info.getChildCount();i++)
                     {
                        if (info.getChild(i)!=null)
                        {
                            //info.getChildCount()=4,但是子节点元素这里是空的。因为默认进来窗口就是这样,是不是刚开始有些元素没有加载上,所以导致子元素是空的,
                            //然后 窗口改变后,再回到这个窗口下,这里就有元素了。









server配置如下

    android:description="@string/app_name"
    android:packageNames="com.tencent.mobileqq"
    android:accessibilityEventTypes="typeAllMask"
    android:accessibilityFlags="flagDefault"
    android:accessibilityFeedbackType="feedbackSpoken"
    android:notificationTimeout="100"
    android:canRetrieveWindowContent="true"/>
  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-07 11:25
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在您的代码中,您尝试获取一个名为com.tencent.open.agent.AuthorityActivity的节点信息,并试图遍历其所有子节点。然而,在您的测试环境中,似乎并没有任何子节点存在。

    为了帮助您解决这个问题,请确保以下几点:

    1. 确认权限请求是否有效:首先检查您的程序是否有足够的权限来访问QQ应用程序及其相关组件。例如,您可能需要使用ContextCompat.checkSelfPermission()方法来确定当前用户是否已授予特定权限。如果用户拒绝了权限请求,则您的程序将无法正常工作。

    2. 检查资源是否正确加载:如果您正在尝试访问的游戏或服务界面不是通过QQ提供的API创建的,那么您可能需要检查资源是否已经成功加载。这可以通过查看日志或运行dumpsys application命令来检查。

    3. 清理缓存和重启:有时候,应用程序可能会因为内存不足而无法正常工作。尝试清空缓存并重新启动应用程序,看看问题是否会自行解决。

    4. 检查网络连接:如果您发现问题是由于网络问题引起的,尝试关闭并重新打开网络连接。

    如果您能够提供更多的细节或者错误消息,我可以为您提供更具体的帮助。

    评论

报告相同问题?