1

Я пытаюсь реализовать AccessibilityService. Я поделился своим кодом ниже. Когда я включаю мою службу доступности из меню настроек, вызывается onServiceConnected(), но onAccessibiltyEvent() не вызывается вообще. Пожалуйста, помогите мне в этом.onAccessibilityEvent не вызван вообще

Объявление об обслуживании в файле манифеста.

<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 файл

<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"); 
    } 
} 

Пожалуйста, обратите внимание, что я уже проверил все StackOverflow ответы, следовательно, не отмечайте это как дубликат.

ответ

0

кажется ваш accessibility_service_config не хватает пакетов, которые определяют приложения вашего AccessibilityService хочет контролировать. Добавить android:packageNames="app.package.name" в accessibility_service_config.

Вы можете обратиться к руководству разработчика Android here.

Eidt:

Ну это, кажется, означает контролировать все пакеты, если вы не предоставите имена пакетов. Возможно, вы можете попробовать указать пакет, чтобы узнать, работает ли он.

+0

Да Пробовал. Не повезло с этим. –

2

Мне нужно было добавить тип обратной связи в файл accessibility_service_config, чтобы он работал.

Try, чтобы добавить этот

android:accessibilityFeedbackType="feedbackAllMask" 

Испытано на Nexus 6P с Android 7.1.2

 Смежные вопросы

  • Нет связанных вопросов^_^