Как я могу получить AutoFillHint/HintText/Text из другой структуры приложения?

Я создаю AutoFillService в своем приложении для управления паролями Android (используя java).

Я следил за этим turotial

Пока мой сервис пытается получить содержимое другого приложения, кажется, что он не может обнаружить AutofillHint, Hint и Text внутри полей.

Вот мой код внутри метода onFillRequest из суперкласса AutoFillService:

      // Get the structure from the request
List<FillContext> context = request.getFillContexts();
AssistStructure structure = context.get(context.size() - 1).getStructure();
this.appToFillName = structure.getActivityComponent().getPackageName();
System.out.println("Fill request : " + this.appToFillName);
// Traverse the structure looking for nodes to fill out.
int nodes = structure.getWindowNodeCount();
for (int i = 0; i < nodes; i++) {
    AssistStructure.ViewNode viewNode = 
    structure.getWindowNodeAt(i).getRootViewNode();
    traverseNode(viewNode);
}

И затем я прохожу узел с помощью своего метода traverseNode:

      public void traverseNode(@NonNull AssistStructure.ViewNode viewNode) {
    //my problem is that I see null objects/nothing coming out of this print function
    //even when I'm on an app where I know there are field with AutofillHints
    System.out.println(Arrays.toString(viewNode.getAutofillHints()) + "\n" + viewNode.getHint() + "\n" + viewNode.getText());
    //here I have some methods to link the autofillId when I detect a field to fill ...
    for (int i = 0; i < viewNode.getChildCount(); i++) {
        AssistStructure.ViewNode childNode = viewNode.getChildAt(i);
        traverseNode(childNode);
    }
}

Спасибо за вашу помощь !

0 ответов

Другие вопросы по тегам