1

Ich versuche, eine AccessibilityService zu implementieren. Ich habe meinen Code unten geteilt. Wenn ich meinen Accessibility-Service über das Einstellungsmenü einschalte, wird onServiceConnected() aufgerufen, aber onAccessibiltyEvent() wird überhaupt nicht aufgerufen. Bitte leiten Sie mich dazu.onAccessibilityEvent überhaupt nicht aufgerufen

Serviceerklärung in der Manifestdatei.

<service 
      android:name=".MyAccessibilityService" 
      android:enabled="true" 
      android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"> 
      <intent-filter> 
       <action android:name="android.accessibilityservice.AccessibilityService" /> 
      </intent-filter> 

      <meta-data 
       android:name="android.accessibilityservice" 
       android:resource="@xml/accessibility_service_config" /> 
</service> 

XML-Datei

<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android" 
    android:description="@string/accessibility_service_description" 
    android:accessibilityEventTypes="typeAllMask" 
    android:canRequestFilterKeyEvents="true" 
    android:accessibilityFlags="flagDefault" 

    android:notificationTimeout="100" 
    android:canRetrieveWindowContent="true" 
    /> 

MyAccessibiltyService.java

public class MyAccessibilityService extends AccessibilityService { 


    @Override 
    protected void onServiceConnected() { 
     super.onServiceConnected(); 
     Log.d(TAG,"Service Connected"); 

    } 

    @Override 
    public void onAccessibilityEvent(AccessibilityEvent event) { 
     System.out.println("Event Occurred"); 
     Log.d(TAG, "onAccessibilityEvent: event=" + event); 
     AccessibilityNodeInfo nodeInfo = event.getSource(); 
     if (null == nodeInfo) return; 


    } 

    @Override 
    public void onInterrupt() { 
     Log.d(TAG,"Accessibility Interrupted"); 

    } 

    @Override 
    public void onDestroy() { 
     super.onDestroy(); 
     Log.d(TAG,"Service Destroyed"); 
    } 
} 

Bitte beachten Sie, dass ich bereits alle Antworten daher Stackoverflow dies nicht markieren, als Duplikat überprüft haben.

Antwort

0

Es scheint, Ihr accessibility_service_config fehlt Pakete, die die Anwendungen definieren Sie Ihre AccessibilityService überwachen möchte. Füge android:packageNames="app.package.name" in accessibility_service_config hinzu.

Sie können auf Android Entwicklerhandbuch here verweisen.

Eidt:

es die Überwachung aller Pakete bedeuten Nun scheint, wenn Sie keine Pakete Namen liefern. Vielleicht können Sie versuchen, ein Paket anzugeben, um zu sehen, ob es funktioniert.

+0

Yep versucht. Auch damit kein Glück. –

2

Ich musste einen Feedback-Typ zu der accessibility_service_config Datei hinzufügen, damit es funktioniert.

Versuchen Sie, diese

android:accessibilityFeedbackType="feedbackAllMask" 

auf einem Nexus 6P mit Android getestet hinzufügen 7.1.2

Verwandte Themen