因此,我使用Accessiblity Service来扫描我的手机屏幕,以检测覆盖等。我遇到的问题是,它找不到弹出窗口的视图,它总是扫描覆盖图下的文本,我如何确保它只扫描当前的顶部覆盖图?例如,我有testapp和testappone,testapp是当前活动,testappone是覆盖,当覆盖弹出到testapp顶部时,我看不到testappone的数据,我看到的是testapp的数据,尽管我可以在testappone上看到testapp上的所有内容。
@Override
public void onAccessibilityEvent(AccessibilityEvent event)
{
final String appPackageName = event.getPackageName().toString();
if (appPackageName.equals("testappone")){
AccessibilityNodeInfo source = getRootInActiveWindow();
processEvent(source);
}
}
private void processEvent(AccessibilityNodeInfo source){
StringBuilder sb = new StringBuilder();
processSubEvent(source, 0, sb);
String string = sb.toString();
Log.e(TAG, "String " + string);
}
private void processSubEvent(final AccessibilityNodeInfo source, final int n, final StringBuilder sb){
sb.append(tools.getText(source));
sb.append("\n");
int childCount = source.getChildCount();
for (int i = 0; i < childCount; i++)
{
AccessibilityNodeInfo child = source.getChild(i);
if (child != null)
{
processSubEvent(child, n + 1, sb);
}
child.recycle();
}
}发布于 2018-08-22 07:17:16
辅助功能服务只能看到用户可以与之交互的窗口。不可触摸的窗口不会报告给他们。
https://stackoverflow.com/questions/51946448
复制相似问题