Подтвердить что ты не робот

Как запустить AccessibilityService?

Я пытаюсь запустить мою реализацию AccessibilityService с помощью

Intent mailAccessabilityIntent = new Intent(this, EmailAccessabilityService.class);
startService(mailAccessabilityIntent);

Моя проблема onServiceConnected() никогда не вызывалась. Как правильно запустить эту службу?

4b9b3361

Ответ 1

Поскольку службы доступности могут исследовать и взаимодействовать с экранным контентом, пользователь должен явно включить службы в настройках > Доступность. После того, как служба включена, система запустит ее автоматически и привяжет к API-интерфейсам доступности.

Убедитесь, что вы объявили свою службу в манифесте вашего приложения:

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

Вам также потребуется указать конфигурацию для своей службы, переопределив setServiceInfo (AccessibilityServiceInfo) или добавив атрибут метаданных и файл конфигурации XML.

Атрибут метаданных находится в вашем <service> после фильтра < намерения-фильтра > и выглядит следующим образом:

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

Конфигурация XML, на которую вы ссылаетесь (в данном случае, accessibilityservice.xml) выглядит следующим образом:

<accessibility-service
    android:accessibilityEventTypes="typeViewClicked|typeViewFocused"
    android:packageNames="foo.bar, foo.baz"
    android:accessibilityFeedbackType="feedbackSpoken"
    android:notificationTimeout="100"
    android:accessibilityFlags="flagDefault"
    android:settingsActivity="foo.bar.TestBackActivity"
    android:canRetrieveWindowContent="true"
    . . .
/>

Там больше информации о том, какие теги вы можете использовать в http://developer.android.com/reference/android/R.styleable.html#AccessibilityService

Ответ 2

Я только что сделал это сегодня. Как только ваша служба будет создана и будет правильно указана в файле манифеста с фильтром намерений доступности. Затем ваш сервис появится в настройках-доступности. Вы начинаете его, нажимая на него, затем переключая его. Я не знаю, как начать его с помощью намерений, но даже если это возможно. Я думаю, что его Ли GPS вы можете ориентироваться только на кнопку запуска.