0

접근성 서비스 내에서 EditText 내부의 텍스트를 변경하고 싶습니다. 내 코드 :접근성 서비스를 통해 볼 데이터 전달 - Android

@Override 
public void onAccessibilityEvent(AccessibilityEvent event) { 

    final AccessibilityNodeInfo source = event.getSource(); 
if (source != null & event.getClassName().equals("android.widget.EditText")) { 
     AccessibilityNodeInfo currentSource = source; 

     ClipboardManager clipboard = (ClipboardManager) this.getSystemService(Context.CLIPBOARD_SERVICE); 
     ClipData clip = ClipData.newPlainText("label", "TestData"); 
     clipboard.setPrimaryClip(clip); 
     currentSource.performAction(AccessibilityNodeInfo.ACTION_PASTE); 

그리고 잘 작동합니다. 사용자가 EditText를 누르면 "TestData"로 바뀝니다. 그 다음에 버튼이있는 대화 상자가 나타납니다. 단추를 눌러 텍스트를 변경하고 싶습니다.

AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext()); 
     builder.setTitle("Test dialog"); 
     builder.setMessage("Content"); 
     builder.setPositiveButton("User", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int whichButton) { 

       ClipboardManager clipboard = (ClipboardManager) getApplication().getSystemService(Context.CLIPBOARD_SERVICE); 
       ClipData clip = ClipData.newPlainText("label", "Test Username"); 
       clipboard.setPrimaryClip(clip); 
       currentSource.performAction(AccessibilityNodeInfo.ACTION_PASTE); 
       dialog.dismiss(); 
      } 
     }); 

버튼을 누르면 클립 보드가 새로 고침되지만 EditText의 텍스트는 그렇지 않습니다.

+0

제안 사항? –

답변

0

나는 타이머 스레드로 내 문제를 해결했습니다. 접근성 서비스가 일부 "지연"을 지닌 다른 장치에서 작동하기 때문에 나에게 도움이되었습니다.

+0

accssibility 서비스를 사용하여 ussd를 읽는 방법을 알려줄 수 있습니까? –

+0

@SrishtiRoy 죄송합니다. ussd 및 접근성 서비스를 사용하지 않았습니다. –

관련 문제