2016-07-23 2 views
0

나는 액티비티 서비스를 사용하여 새로운 활동이나 창을 열 때 이벤트를 처리하려고합니다. 그러나 그것은 효과가 없습니다. (1) .XML 파일이나 dinamically (2) 설정을 사용TYPE_WINDOW_STATE_CHANGED와 함께 접근성 서비스를 사용하는 방법

public class DemoAccessibilityService extends AccessibilityService { 
@Override 
public void onAccessibilityEvent(AccessibilityEvent event) { 
    System.out.println(" DemoAccessibilityService change= " + event.getAction()); 

} 

@Override 
public void onInterrupt() { 
} 

@Override 
protected void onServiceConnected() { 
    System.out.println("DemoAccessibilityService connected"); 
    super.onServiceConnected(); 
    AccessibilityServiceInfo config = new AccessibilityServiceInfo(); 
    config.eventTypes = AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED; 
    config.feedbackType = AccessibilityServiceInfo.FEEDBACK_GENERIC; 

    if (Build.VERSION.SDK_INT >= 16) 
     config.flags = AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS; 

    setServiceInfo(config); 
} 

@Override 
public void onDestroy() { 
    System.out.println("DemoAccessibilityService destroy"); 
    super.onDestroy(); 
} 

}

서비스를 config (설정)하는 두 가지 옵션이 있습니다 :

** 첫째, 같은 접근성 서비스 클래스의 모습을 구현 소스 코드.

<accessibility-service 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:accessibilityEventTypes="typeWindowStateChanged" 
android:accessibilityFeedbackType="feedbackGeneric" 
android:accessibilityFlags="flagIncludeNotImportantViews" 
tools:ignore="UnusedAttribute" 
android:packageNames="com.android.systemui" 

/>

** 그 후, 나는 이런 식의 AndroidManifest.xml에 선언 : 나는 demo_accessibility.xml 설정 파일을 가지고

<service android:name="demo.android.accessibility.DemoAccessibilityService" 
      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/demo_accessibility"/> 
    </service> 

장치에서 빌드 후, I 설정으로 이동하여 접근성 카테고리에서 켜십시오. 하지만 작동하지 않습니다! 어떻게해야합니까?

답변

0

demo_accessibility.xml 파일에 android:canRetrieveWindowContent="true"을 추가해야합니다.