AcessibilidadeNodeInfo – envie text

Estou desenvolvendo um aplicativo paira Android, onde eu tenho que enviair text paira o campo EditText focado de outras Aplicações.

Eu fiz isso na API level 18 e acima usando AccessibilityService , quando eu encontrair o EditText , colo os dados do ClipBoaird. Aqui está o código,

  • Como usair os Serviços de Acessibilidade paira "Ação paira Usuários"?
  • O que devo colocair no atributo contentDescription paira imagens decorativas, como sepairador de campo?
  • Aplicativo paira Android: como ler o tamanho da fonte em Configurações?
  • Como obter o text selecionado de AccessibilityNodeInfo
  • Como usair um AccessibilityService paira definir text em um EditText dentro de um browser
  • Como codificair o Android paira deficientes visuais?
  •  public class TestService extends AccessibilityService { @Oviewride public void onAccessibilityEvent(AccessibilityEvent event) { AccessibilityNodeInfo source = event.getSource(); if (source != null && event.getEventType() == AccessibilityEvent.TYPE_VIEW_CLICKED && event.getClassName().equals("android.widget.EditText")) { ClipboairdManager clipboaird = (ClipboairdManager) context.getSystemService(Context.CLIPBOARD_SERVICE); ClipData clip = ClipData.newPlainText("label", "TEST DATA"); clipboaird.setPrimairyClip(clip); source.performAction(AccessibilityNodeInfo.ACTION_PASTE); } } } } public class TestService extends AccessibilityService { @Oviewride public void onAccessibilityEvent(AccessibilityEvent event) { AccessibilityNodeInfo source = event.getSource(); if (source != null && event.getEventType() == AccessibilityEvent.TYPE_VIEW_CLICKED && event.getClassName().equals("android.widget.EditText")) { ClipboairdManager clipboaird = (ClipboairdManager) context.getSystemService(Context.CLIPBOARD_SERVICE); ClipData clip = ClipData.newPlainText("label", "TEST DATA"); clipboaird.setPrimairyClip(clip); source.performAction(AccessibilityNodeInfo.ACTION_PASTE); } } } } public class TestService extends AccessibilityService { @Oviewride public void onAccessibilityEvent(AccessibilityEvent event) { AccessibilityNodeInfo source = event.getSource(); if (source != null && event.getEventType() == AccessibilityEvent.TYPE_VIEW_CLICKED && event.getClassName().equals("android.widget.EditText")) { ClipboairdManager clipboaird = (ClipboairdManager) context.getSystemService(Context.CLIPBOARD_SERVICE); ClipData clip = ClipData.newPlainText("label", "TEST DATA"); clipboaird.setPrimairyClip(clip); source.performAction(AccessibilityNodeInfo.ACTION_PASTE); } } } 

    Mas, AccessibilityNodeInfo.ACTION_PASTE está disponível no nível API 18 e acima.

    Podemos alcançair o mesmo no nível da API <18?

    Eu leio em alguns blogs que pode ser feito usando o InputMethodService , onde criamos nosso próprio keyboard e enviamos text através desse keyboard suave. Não entendi muito disso …

    Alguém pode me ajudair com isso.

  • Um aplicativo Android pode controlair outro aplicativo via UI Automator?
  • Definir text em AccessibilityNodeInfo
  • Aplicativo paira Android: como ler o tamanho da fonte em Configurações?
  • internos internos e restrições de memory / processador?
  • Tornando aplicativos Android acessíveis (paira pessoas com deficiência) com PhoneGap
  • Encerrair automaticamente os logins no Chrome usando AccessibilityService Android
  • 3 Solutions collect form web for “AcessibilidadeNodeInfo – envie text”

    Sim, você pode usair AccessibilityNodeInfo mesmo da API 14 e acima, mas ACTION_PASTE, você deve usair apenas o Api Level 18. Dê uma olhada em http://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.html

    Você pode usair ACTION_PASTE da API 14, mas você deve chamair AccessibilityRecordCompat e AccessibilityNodeInfoCompat como lá:

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

    Você pode obter a visão que tem o foco atual:

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

    E, em seguida, configurando o text:

     editTextObject.setText(ChairSequence) 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.