2014-11-24 8 views
7

Sto sviluppando un'applicazione che richiede il riempimento automatico degli accessi in altre app installate e chrome. Sono in grado di compilare automaticamente gli accessi in altre app installate utilizzando AccessibilityService ma non riesco a farlo funzionare sul browser Chrome. Sono in grado di identificare il nome utente e la password AccessibilityNodeInfo ma non riesco a incollare il contenuto in esso.Compilazione automatica di accessi in Chrome tramite AccessibilityService Android

Questo è il modo in cui sto provando, sto copiando il contenuto da inserire negli Appunti e quindi incollando il contenuto in questi campi nome utente e password utilizzando AccessibilityNodeInfo.ACTION_PASTE. Questa tecnica funziona bene per altre app installate ma non riesce a incollare in Chrome. Non sono in grado di trovare post pertinenti online tranne questo - link, ma non c'è una soluzione chiara al suo interno. Inoltre, non sono in grado di trovare nulla documentato anche sul sito degli sviluppatori. Dovrei iniettare il codice javascript per incollare il mio contenuto? Se è così puoi per favore darmi un esempio? L'ho già fatto usando WebView in precedenza ma in questo caso non ho alcun riferimento alla vista.

Qualsiasi aiuto su questo sarà molto apprezzato.

+0

voglio creare un servizio di accessibilità per il login di riempimento automatico altra applicazione. Potete fornirmi alcuni link di esempi? – Bunny

risposta

0

È possibile eseguire javascript per ottenere questo risultato eseguendo qualcosa di simile a quanto segue:

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

tuttavia dubito se si può semplicemente eseguire js arbitrari in app Chrome come app al di fuori.

0

Beh Google non consente che

"Non si può utilizzare un AccessibilityService per iniettare JavaScript"

"Non ci sono piani per supportare JavaScript estensioni o qualsiasi altro metodo di iniezione di javascript in Chrome o in WebView. "

Si può leggere di più here...

0

È possibile utilizzare questo metodo per realizzare il riempimento automatico:

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); 
}