AccessibilityNodeInfo – enviar texto

Estoy desarrollando una aplicación para Android, donde tengo que enviar texto al campo de EditText texto de otras aplicaciones.

Lo he hecho en el API level 18 y superior usando AccessibilityService , cuando encuentro el EditText , EditText 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); } } } 

Sin embargo, AccessibilityNodeInfo.ACTION_PASTE está disponible en el nivel de API 18 y superior.

¿Podemos lograr lo mismo en el nivel API <18?

He leído en algunos blogs que se puede hacer usando InputMethodService , donde creamos nuestro propio teclado y enviar texto a través de ese teclado suave. No entendí mucho de eso …

Alguien me puede ayudar en esto.

Sí, puedes usar AccessibilityNodeInfo incluso desde la API 14 y hasta, pero ACTION_PASTE tienes que usar solo desde Api Level 18. Echa un vistazo a http://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.html

Puede utilizar ACTION_PASTE de API 14, pero tiene que llamar a AccessibilityRecordCompat y AccessibilityNodeInfoCompat como allí:

 AccessibilityRecordCompat record = AccessibilityEventCompat.asRecord(event); AccessibilityNodeInfoCompat source = record.getSource(); source.performAction(AccessibilityNodeInfo.ACTION_PASTE); 

Usted podría obtener la vista que tiene el enfoque actual:

 public View getCurrentFocus() { return mWindow != null ? mWindow.getCurrentFocus() : null; } 

Y luego configurar el texto:

 editTextObject.setText(CharSequence) 
  • Cómo dirigir a los usuarios para habilitar el servicio de accesibilidad para mi aplicación
  • Cómo activar / desactivar todos los sonidos de la configuración de accesibilidad mediante programación en android?
  • Enfoque en movimiento dentro de un FrameLayout
  • Android internos y limitaciones de memoria / procesador?
  • Significado de diferentes tipos de retroalimentación para un servicio de accesibilidad en android?
  • La casilla de verificación centrada en estilos no se puede comprobar cuando se utiliza TalkBack o VoiceOver
  • Cómo obtener el texto seleccionado de AccessibilityNodeInfo
  • Android dispara un evento de accesibilidad personalizado desde un botón de ActionBar haga clic
  • Eliminar el foco de ActionBar android Accessibility
  • Establecer texto en AccessibilityNodeInfo
  • Aplicación de Android: cómo leer el tamaño de fuente en Configuración?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.