2014-11-24 10 views
7

Pracuję nad aplikacją, która wymaga automatycznego wypełniania loginu w innych zainstalowanych aplikacjach i chrome. Mogę pomyślnie automatycznie wypełniać loginy w innych zainstalowanych aplikacjach za pomocą AccessibilityService, ale nie mogę uruchomić go w przeglądarce Chrome. Jestem w stanie zidentyfikować nazwę użytkownika i hasło AccessibilityNodeInfo, ale nie mogę wkleić w nim treści.Autouzupełnianie logowania w Chrome przy użyciu AccessibilityService Android

Tak próbuję, kopiuję zawartość do wypełnienia w schowku, a następnie wklejając zawartość do tych pól nazwy użytkownika i hasła za pomocą AccessibilityNodeInfo.ACTION_PASTE. Ta technika działa dobrze w przypadku innych zainstalowanych aplikacji, ale nie wkleja się do Chrome. Nie mogę znaleźć żadnych istotnych postów w Internecie z wyjątkiem tego - link, ale nie ma w nim jednoznacznego rozwiązania. Również nie jestem w stanie znaleźć niczego udokumentowanego na stronie programisty. Czy powinienem wstrzykiwać kod javascript, aby wkleić moje treści? Jeśli tak, czy możesz podać mi przykład? Zrobiłem to za pomocą WebView wcześniej, ale w tym przypadku nie mam odniesienia do widoku.

Każda pomoc w tym zakresie zostanie bardzo doceniona.

+0

Chcę utworzyć usługę dostępności dla Autouzupełnianie innych aplikacji logowania. Czy możesz podać mi kilka przykładów? – Bunny

Odpowiedz

0

można uruchomić JavaScript aby tego dokonać wykonując coś jak poniżej:

document.getElementById("username").val = "username";

jednak wątpię, czy można po prostu uruchomić arbitralne JS w aplikacji Chrome jako zewnętrznej aplikacji.

0

Dobrze Google nie zezwala że

„Nie można użyć AccessibilityService wstrzyknąć JavaScript”

„Nie ma planów, aby obsługiwać JavaScript rozszerzeń lub jakiejkolwiek innej metody wtryskiwania JavaScript w przeglądarce Chrome lub WebView. "

Możesz przeczytać więcej here...

0

Można użyć tej metody, aby osiągnąć Autowypełniania:

private void setNodeText(AccessibilityNodeInfo node, String str) { 
     Bundle bundle = new Bundle(); 
     bundle.putCharSequence(AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE, str); 
     node.performAction(AccessibilityNodeInfo.ACTION_SET_TEXT, bundle); 
} 
Powiązane problemy