在填写的EditText从(无障碍)服务的任何应用程序? [英] Fill in EditText of any app from (Accessibility)Service?

查看:1236
本文介绍了在填写的EditText从(无障碍)服务的任何应用程序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何LastPass的管理这个?

How does Lastpass manage this?!

AccessibilityNodeInfo有一个setText()方法,但我觉得这是一个红鲱鱼作为文档状态,

AccessibilityNodeInfo has a setText() method, but I feel like this is a red herring as the docs state,

注:不能从AccessibilityService调用。此类被传递到AccessibilityService前作出不可改变的。

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

另一位用户问过类似的问题而回,但最近的更新LastPass的证明,它的确是可能的。

Another user asked a similar question a while back, but the recent updates to LastPass prove that it is indeed possible.

在AccessibilityNodeInfo 设置文本

推荐答案

我已经想通了这一点,并在我的应用程序实现的,TAPN。

I have figured this out and have it implemented in my app, TapN.

首先得到原剪贴板内容,保存,复制到剪贴板内容,然后将其粘贴,然后复制原来的内容了。

First get the original clipboard contents, save that, copy to the clipboard your content, then paste it, then copy the original content back.

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

这篇关于在填写的EditText从(无障碍)服务的任何应用程序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆