Я хочу обнаружить касание или проведите пальцем по домашнему экрану телефона.После обнаружения мне нужно выполнить свое действие.Я использую сервис доступности для этого.Но не удается обнаружить касание или проведите пальцем на домашнем экране телефона.Кто-нибудь может мне помочь, пожалуйста.Ниже приведен мой код
global_accessibility_service.xml
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:accessibilityEventTypes="typeAllMask"
android:accessibilityFeedbackType="feedbackAllMask"
android:accessibilityFlags="flagDefault"
android:canPerformGestures="true"
android:canRequestTouchExplorationMode="true"
android:canRetrieveWindowContent="true"
android:description="@string/accessibility_service_description"
android:notificationTimeout="100"
tools:ignore="UnusedAttribute" />
Класс обслуживания
public class GlobalAccessibilityService extends AccessibilityService {
FrameLayout mLayout;
@SuppressLint("MissingPermission")
@Override
public void onCreate() {
}
@SuppressLint("InlinedApi")
@Override
protected void onServiceConnected() {
super.onServiceConnected();
}
@SuppressLint("SwitchIntDef")
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
final int eventType = event.getEventType();
String eventText = null;
switch (eventType) {
case AccessibilityEvent.TYPE_VIEW_CLICKED:
eventText = "Clicked: ";
break;
case AccessibilityEvent.TYPE_VIEW_FOCUSED:
eventText = "Focused: ";
break;
case AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED:
eventText = "ACCESSIBILITY_FOCUS_CLEARED: ";
break;
case AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED:
eventText = "ACCESSIBILITY_FOCUS: ";
break;
case AccessibilityEvent.TYPE_VIEW_CONTEXT_CLICKED:
eventText = "CONTEXT_CLICKED: ";
break;
case AccessibilityEvent.TYPE_VIEW_HOVER_ENTER:
eventText = "HOVER_ENTER: ";
break;
case AccessibilityEvent.TYPE_VIEW_HOVER_EXIT:
eventText = "HOVER_EXIT: ";
break;
case AccessibilityEvent.TYPE_VIEW_LONG_CLICKED:
eventText = "LONG_CLICKED: ";
break;
case AccessibilityEvent.TYPE_VIEW_SCROLLED:
eventText = "SCROLLED: ";
break;
case AccessibilityEvent.TYPE_VIEW_SELECTED:
eventText = "SELECTED: ";
break;
case AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED:
eventText = "TEXT_CHANGED: ";
break;
case AccessibilityEvent.TYPE_VIEW_TEXT_SELECTION_CHANGED:
eventText = "TEXT_SELECTION_CHANGED: ";
break;
case AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY:
eventText = "TRAVERSED_AT_MOVEMENT_GRANULARITY: ";
break;
case AccessibilityEvent.TYPE_ANNOUNCEMENT:
eventText = "ANNOUNCEMENT: ";
break;
case AccessibilityEvent.TYPES_ALL_MASK:
eventText = "ALL_MASK: ";
break;
case AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED:
eventText = "WINDOW_STATE_CHANGED: ";
break;
case AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED:
eventText = "WINDOW_CONTENT_CHANGED: ";
break;
case AccessibilityEvent.TYPE_TOUCH_INTERACTION_START:
eventText = "TOUCH_INTERACTION_START: ";
break;
case AccessibilityEvent.TYPE_TOUCH_INTERACTION_END:
eventText = "TOUCH_INTERACTION_END: ";
break;
case AccessibilityEvent.TYPE_TOUCH_EXPLORATION_GESTURE_START:
eventText = "TOUCH_EXPLORATION_GESTURE_START: ";
break;
case AccessibilityEvent.TYPE_TOUCH_EXPLORATION_GESTURE_END:
eventText = "TOUCH_EXPLORATION_GESTURE_END: ";
break;
}
eventText = eventText + event.getContentDescription();
}
@Override
public void onInterrupt() {
}
}
манифест
<service
android:name=".GlobalAccessibilityService"
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.accessibilityservice"
android:resource="@xml/global_accessibility_service" />
</service>