Я разрабатываю приложение, которое должно собирать взаимодействие пользователя с устройством Android (данные, связанные с касанием), аналогично эта запись SO.
Я пробовал все предложенные подходы к ответу, начиная с наложения приложения с флагом WATCH_OUTSIDE_TOUCH
и без него. Подход getevent
также не подходит для меня, поскольку для него требуется root или внешнее хранилище (как указано в ответе).
Итак, я создал AccessibilityService
и теперь могу обнаруживать такие события, как: VIEW_CLICKED
, VIEW_SCROLLED
. Однако в документации я также встречал GESTURE_DETECTION_START
, GESTURE_DETECTION_END
, TOUCH_INTERACTION_START
и TOUCH_INTERACTION_END
. Я хотел бы использовать их для измерения времени взаимодействия. К сожалению, моя служба вообще не получает эти события, несмотря на правильную (?) конфигурацию. Моя текущая конфигурация выглядит так:
AndroidManifest.xml:
...
<service
android:name=".accessibility.MyAccessibilityService"
android:label="@string/accessibility_service_label"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
<meta-data
android:name="android.accessibilityervice"
android:resource="@xml/accessibility_config" />
</service>
...
accessibility_config.xml:
<?xml version="1.0" encoding="utf-8"?>
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
android:accessibilityEventTypes="typeAllMask"
android:accessibilityFeedbackType="feedbackAllMask"
android:description="@string/accessibility_service_description"
android:notificationTimeout="5"
android:summary="@string/accessibility_service_description" />
Подводя итог, мой сервис запускается и получает некоторые события правильно, но ему не хватает жестов и событий запуска/завершения касания. Я пробовал много других конфигураций, включая все возможности и флаги, но без какого-либо эффекта. Также я попытался переопределить метод AccessibilityService::onGesture
, но он так и не был вызван. Доступны ли эти события только в режиме сенсорного исследования?
Я описал свою проблему, возможно, слишком широко, но я был бы признателен за любую помощь или предложения, даже не связанные строго с подходом AccessibilityService.