Fill EditText of any application from the service (Availability)?

How does Lastpass work?

AccessibilityNodeInfo has a setText () method, but I feel it is a red herring as the state of documents,

Note. Cannot be called from AccessibilityService. This class becomes immutable before it is delivered to the AccessibilityService.

Another user asked a similar question a while ago, but recent LastPass updates prove that this is really possible.

Set text to AccessibilityNodeInfo

+4
source share
2 answers

, ACTION_PASTE. , ACTION_PASTE . ACTION_SET_TEXT , .

public void pasteText(AccessibilityNodeInfo node, String text) {
        Bundle arguments = new Bundle();
        arguments.putString(AccessibilityNodeInfoCompat.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE, text);
        node.performAction(AccessibilityNodeInfoCompat.ACTION_SET_TEXT, arguments);
    }
+1

TapN.

, , , , .

    public void inputData(Context c, String data, AccessibilityNodeInfo source) {
    try {

            String lastClip = clipboard.getPrimaryClip().getItemAt(0).coerceToText(c)
                    .toString();
        } catch (Exception e) {
            lastClip = "";
        }
        Log.d("THE NODE INFO", source.toString());

        ClipData clip = ClipData.newPlainText("nfc_input", data);
        clipboard.setPrimaryClip(clip);

        Log.d("SENDING DATA", Boolean.toString(source.refresh()));
        Log.d("SENDING DATA", Boolean.toString(source
                .performAction(AccessibilityNodeInfo.ACTION_PASTE)));
        ClipData clip = ClipData.newPlainText("nfc_input", lastClip);
        clipboard.setPrimaryClip(clip);
}
+4

Source: https://habr.com/ru/post/1536821/


All Articles