AccessibilityNodeInfo - envia texto
Estou desenvolvendo um aplicativo Android, para o qual tenho que enviar texto paraEditText
campo de outras aplicações.
Eu fiz isso emAPI level 18
e acima usandoAccessibilityService
, quando encontro oEditText
, Colo os dados do ClipBoard. Aqui está o código,
public class TestService extends AccessibilityService {
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
AccessibilityNodeInfo source = event.getSource();
if (source != null && event.getEventType() == AccessibilityEvent.TYPE_VIEW_CLICKED && event.getClassName().equals("android.widget.EditText")) {
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("label", "TEST DATA");
clipboard.setPrimaryClip(clip);
source.performAction(AccessibilityNodeInfo.ACTION_PASTE);
}
}
}
Mas,AccessibilityNodeInfo.ACTION_PASTE
está disponível no nível 18 da API e acima.
Podemos alcançar o mesmo no nível da API <18?
Li em alguns blogs que isso pode ser feito usandoInputMethodService
, onde criamos nosso próprio teclado e enviamos texto por esse teclado virtual. Eu não entendi muito disso ...
Alguém pode me ajudar com isso.