Próbuję uzyskać dostęp do zawartości tekstowej innej aplikacji, która prawdopodobnie została zbudowana przy użyciu innej niż macierzysta (js + html) architektury.Jak uzyskać dostęp do treści html AccessibilityNodeInfo elementu WebView za pomocą usługi dostępności w systemie Android?
W związku z tym doszedłem do wniosku, że spróbuję uzyskać dostęp do danych z węzła dostępności odpowiadającego elementowi WebView. Jednak jestem w stanie pobrać dane tekstowe/html za pomocą zwykłych metod od czasu metod, takich jak gettext() działa tylko wtedy, gdy jest native android elementu takiego jak TextView, Button itp
public class MyAccessibilityService extends AccessibilityService {
@Override
public void onAccessibilityEvent(AccessibilityEvent accessibilityEvent) {
AccessibilityNodeInfo accessibilityNodeInfo = accessibilityEvent.getSource();
if (accessibilityNodeInfo == null) {
return;
}
int childCount = accessibilityNodeInfo.getChildCount();
for (int i = 0; i < childCount; i++) {
AccessibilityNodeInfo accessibilityNodeInfoChild = accessibilityNodeInfo.getChild(i);
myRecursiveFunc(accessibilityNodeInfoChild);
}
}
@Override
public void onInterrupt() {
}
private void myRecursiveFunc(AccessibilityNodeInfo accessibilityNodeInfoChild) {
if (accessibilityNodeInfoChild.getChildCount() > 0) {
for (int j = 0; j < accessibilityNodeInfoChild.getChildCount(); j++) {
AccessibilityNodeInfo child = accessibilityNodeInfoChild.getChild(j);
if (child != null) {
myRecursiveFunc(child);
}
}
} else {
if ("android.webkit.WebView".equals(accessibilityNodeInfoChild.getClassName())) {
//===========This is a WebView's AccessibilityNodeInfo !!!!
//===========How to get HTML data from nodeinfo object here ??
}
}
}
}