Как получить доступ к сервису доступности только из моего приложения - PullRequest
0 голосов
/ 29 мая 2019

Я хочу слушать жест доступности, когда пользователь внутри моего приложения.Это означает, что onGusture должен вызывать, когда мое приложение находится на переднем плане, но onGesture всегда вызывал независимо от того, на моем ли приложении или нет.Я пытаюсь установить имя пакета в Java, а также в XML, но это не работает.Пожалуйста, посмотрите на это, скажите мне, что я делаю неправильно

MyAccessibilityService.java

public class MyAccessibilityService extends AccessibilityService {
private String TAG="MyAccessibilityServiceTAG";


    @Override
    protected boolean onGesture(int gestured) {//This method always called, I want this method only called when my App in foreground  
        Log.d(TAG,"onGesture:"+gestureId);
        Toast.makeText(getApplicationContext(),"Gesture: "+gestureId,Toast.LENGTH_SHORT).show();
        return super.onGesture(gestureId);

    }

    @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
    protected void onServiceConnected() {
        super.onServiceConnected();
                AccessibilityServiceInfo info = getServiceInfo();
        // your other assignments
        info.packageNames = new String[]{"com.vorail.ttsdemo"};
        setServiceInfo(info);
    }

    @Override
    public void onInterrupt() {
        Log.d(TAG,"Accessibility Interrupted" );

    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        Log.d(TAG,"Service Destroyed");
    }
}

accessibility_service_config.xml

 <accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
                           android:description="@string/app_name"
                           android:accessibilityEventTypes="typeTouchExplorationGestureStart"
                           android:canRequestFilterKeyEvents="false"

                           android:accessibilityFeedbackType="feedbackSpoken"
                           android:packageNames="com.vorail.ttsdemo"
                           android:notificationTimeout="100"
                           android:settingsActivity="com.vorail.ttsdemo.MainActivity"
                           android:accessibilityFlags="flagDefault|flagRequestTouchExplorationMode"
                           android:canRequestTouchExplorationMode="true"
    />
...