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

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

13 голосов
/ 16 февраля 2012

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

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

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

Ответы [ 2 ]

30 голосов
/ 09 сентября 2012

Поскольку службы специальных возможностей могут исследовать и взаимодействовать с экранным контентом, пользователь должен явно включить службы в меню «Настройки»> «Специальные возможности». Как только служба включена, система запустит ее автоматически и свяжет с 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-файл конфигурации.

Атрибут метаданных идет в объявлении после тега и выглядит следующим образом:

<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

.
1 голос
/ 24 мая 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...