AccessibilityNodeInfo - enviar texto
Estoy desarrollando una aplicación para Android, donde tengo que enviar mensajes de texto aEditText
campo de otras aplicaciones.
Lo he hecho enAPI level 18
y arriba usandoAccessibilityService
, cuando encuentro elEditText
, Pego los datos de ClipBoard. Aquí está el 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);
}
}
}
Pero,AccessibilityNodeInfo.ACTION_PASTE
está disponible en API nivel 18 y superior.
¿Podemos lograr lo mismo en API Level <18?
Leí en algunos blogs que se puede hacer usandoInputMethodService
, donde creamos nuestro propio teclado y enviamos texto a través de ese teclado virtual. No entendí mucho de eso ...
Alguien me puede ayudar en esto.