2

Я пытаюсь заполнить EditText, зарегистрированный с помощью службы специальных возможностей, например DashLane или некоторых других приложений, которые используют службу доступности. Я использую фокус событий. когда EditText фокусируется на событии, но getSource() возвращает null.event.getSource() возвращает null Доступность в android

Кодекса:

AccessibilityNodeInfo source = event.getSource(); 

if (source != null) { 
     ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); 
     ClipData clip = ClipData.newPlainText("label", "TEST DATA"); 
     clipboard.setPrimaryClip(clip); 
     source.performAction(AccessibilityNodeInfo.ACTION_PASTE); 
     Toast.makeText(MyAccessibilityService.this, "Pasted Successfully", Toast.LENGTH_LONG); 
} 

и я попробовал некоторые из других методов, выдающие ошибки. поэтому здесь возникает один вопрос: почему он возвращает null. кто-нибудь может помочь мне.

Androidmanifest

  <uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE"/> 
      <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> 
      <application 
       android:icon="@drawable/ic_launcher" 
       android:label="@string/app_name" 
       android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"> 
       <service android:name=".MyAccessibilityService" android:label="@string/app_name" android:enabled="true" android:exported="true"> 
       <intent-filter> 
        <action android:name="android.accessibilityservice.AccessibilityService" android:resource="@xml/accessibility" /> 
       </intent-filter> 

Accessibility.xml

 <accessibility-service xmlns:android="http://schemas.android.com/apk/res/android" 
      android:description="@string/accessibility_service_description" 
      android:packageNames="com.test.toasts2" 
      android:accessibilityEventTypes="typeAllMask" 
      android:accessibilityFlags="flagDefault" 
      android:accessibilityFeedbackType="feedbackSpoken" 
      android:notificationTimeout="100" 
      android:canRetrieveWindowContent="true" 
      android:settingsActivity="com.example.android.accessibility.ServiceSettingsActivity" 
     /> 

ответ

2

Вы пропустили мета-тег в файле манифеста. просто добавь.

 <meta-data android:name="android.accessibilityservice" 
     android:resource="@xml/accessibility"> 
+0

Я работаю. –

0

Убедитесь, что android:canRetrieveWindowContent="true"

Это работало для меня. И это свойство нельзя установить с помощью java-кода.