2016-02-25 76 views
0

我正在做一些任務與無障礙服務。所有的工作很好,但我需要刪除我的XML的配置,並從onServiConnected配置方法運行服務,這裏是我有問題。AccessibilityService所有服務連接,但它不起作用

我可以在日誌中看到onServiceConnected在我手機中啓用該服務時工作,但它不能與包名稱一起使用,例如我在access_xml_config中運行配置的位置。

然後,我想要做的是具有相同的功能,我有access_xml_config,但在onServiceConnected方法。

我的方法:

@Override 
    @SuppressLint("NewApi") 
    public void onServiceConnected() { 
     super.onServiceConnected(); 
     Log.i(TAG, "onServiceConnected AccessibilityService"); 
     AccessibilityServiceInfo info = new AccessibilityServiceInfo(); 
     info.flags = AccessibilityServiceInfo.DEFAULT; 
     info.getCanRetrieveWindowContent(); 
     info.notificationTimeout = 100; 
     info.feedbackType = AccessibilityServiceInfo.FLAG_RETRIEVE_INTERACTIVE_WINDOWS; 
     info.feedbackType = AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS; 
     info.feedbackType = AccessibilityServiceInfo.FEEDBACK_GENERIC; 
     info.feedbackType = AccessibilityServiceInfo.FLAG_REPORT_VIEW_IDS; 
     info.packageNames = new String[]{"com.android.incallui"}; 
     this.setServiceInfo(info); 

    } 

清單

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

這是我access_xml_config:

<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android" 
    android:packageNames="com.android.incallui" 
android:accessibilityEventTypes="typeAllMask" 
android:accessibilityFlags="flagDefault|flagReportViewIds|flagIncludeNotImportantViews|flagRetrieveInteractiveWindows" 
android:accessibilityFeedbackType="feedbackGeneric" 
android:notificationTimeout="100" 
android:canRetrieveWindowContent="true" 
android:description="@string/app_name" 
    /> 

回答

0

我發現anwser ...使用getServiceInfo();

@Override 
    @SuppressLint("NewApi") 
    public void onServiceConnected() { 
     super.onServiceConnected(); 
     Log.i(TAG, "onServiceConnected AccessibilityService"); 
     accessibilityServiceInfo info; 
     clientconfig = VsClientConfig.getInstance(); 
     info = getServiceInfo(); 
     info.packageNames = new String[]{"your.package.name"}; 
     setServiceInfo(info); 

    }