Search in sources :

Example 26 with IAccessibilityManager

use of android.view.accessibility.IAccessibilityManager in project android_frameworks_base by crdroidandroid.

the class UiAutomationConnection method registerUiTestAutomationServiceLocked.

private void registerUiTestAutomationServiceLocked(IAccessibilityServiceClient client, int flags) {
    IAccessibilityManager manager = IAccessibilityManager.Stub.asInterface(ServiceManager.getService(Context.ACCESSIBILITY_SERVICE));
    final AccessibilityServiceInfo info = new AccessibilityServiceInfo();
    info.eventTypes = AccessibilityEvent.TYPES_ALL_MASK;
    info.feedbackType = AccessibilityServiceInfo.FEEDBACK_GENERIC;
    info.flags |= AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS | AccessibilityServiceInfo.FLAG_REPORT_VIEW_IDS | AccessibilityServiceInfo.FLAG_FORCE_DIRECT_BOOT_AWARE;
    info.setCapabilities(AccessibilityServiceInfo.CAPABILITY_CAN_RETRIEVE_WINDOW_CONTENT | AccessibilityServiceInfo.CAPABILITY_CAN_REQUEST_TOUCH_EXPLORATION | AccessibilityServiceInfo.CAPABILITY_CAN_REQUEST_ENHANCED_WEB_ACCESSIBILITY | AccessibilityServiceInfo.CAPABILITY_CAN_REQUEST_FILTER_KEY_EVENTS);
    try {
        // Calling out with a lock held is fine since if the system
        // process is gone the client calling in will be killed.
        manager.registerUiTestAutomationService(mToken, client, info, flags);
        mClient = client;
    } catch (RemoteException re) {
        throw new IllegalStateException("Error while registering UiTestAutomationService.", re);
    }
}
Also used : IAccessibilityManager(android.view.accessibility.IAccessibilityManager) AccessibilityServiceInfo(android.accessibilityservice.AccessibilityServiceInfo) RemoteException(android.os.RemoteException)

Example 27 with IAccessibilityManager

use of android.view.accessibility.IAccessibilityManager in project android_frameworks_base by crdroidandroid.

the class EnableAccessibilityController method disableAccessibility.

public static void disableAccessibility(Context context) {
    final IAccessibilityManager accessibilityManager = IAccessibilityManager.Stub.asInterface(ServiceManager.getService("accessibility"));
    ComponentName componentName = getInstalledSpeakingAccessibilityServiceComponent(context);
    if (componentName == null) {
        return;
    }
    final int userId = ActivityManager.getCurrentUser();
    try {
        accessibilityManager.disableAccessibilityService(componentName, userId);
    } catch (RemoteException e) {
        Log.e(TAG, "cannot disable accessibility " + e);
    }
}
Also used : IAccessibilityManager(android.view.accessibility.IAccessibilityManager) ComponentName(android.content.ComponentName) RemoteException(android.os.RemoteException)

Example 28 with IAccessibilityManager

use of android.view.accessibility.IAccessibilityManager in project android_frameworks_base by crdroidandroid.

the class EnableAccessibilityController method enableAccessibility.

public static boolean enableAccessibility(Context context) {
    final IAccessibilityManager accessibilityManager = IAccessibilityManager.Stub.asInterface(ServiceManager.getService("accessibility"));
    final WindowManagerInternal windowManager = LocalServices.getService(WindowManagerInternal.class);
    final UserManager userManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
    ComponentName componentName = getInstalledSpeakingAccessibilityServiceComponent(context);
    if (componentName == null) {
        return false;
    }
    boolean keyguardLocked = windowManager.isKeyguardLocked();
    final boolean hasMoreThanOneUser = userManager.getUsers().size() > 1;
    try {
        if (!keyguardLocked || !hasMoreThanOneUser) {
            final int userId = ActivityManager.getCurrentUser();
            accessibilityManager.enableAccessibilityService(componentName, userId);
        } else if (keyguardLocked) {
            accessibilityManager.temporaryEnableAccessibilityStateUntilKeyguardRemoved(componentName, true);
        }
    } catch (RemoteException e) {
        Log.e(TAG, "cannot enable accessibilty: " + e);
    }
    return true;
}
Also used : WindowManagerInternal(android.view.WindowManagerInternal) IAccessibilityManager(android.view.accessibility.IAccessibilityManager) UserManager(android.os.UserManager) ComponentName(android.content.ComponentName) RemoteException(android.os.RemoteException)

Aggregations

IAccessibilityManager (android.view.accessibility.IAccessibilityManager)28 RemoteException (android.os.RemoteException)20 ComponentName (android.content.ComponentName)8 AccessibilityManager (android.view.accessibility.AccessibilityManager)8 AccessibilityServiceInfo (android.accessibilityservice.AccessibilityServiceInfo)7 UserManager (android.os.UserManager)4 MediumTest (android.test.suitebuilder.annotation.MediumTest)4 WindowManagerInternal (android.view.WindowManagerInternal)4 IBinder (android.os.IBinder)3 AccessibilityEvent (android.view.accessibility.AccessibilityEvent)2 LargeTest (android.test.suitebuilder.annotation.LargeTest)1 ArrayList (java.util.ArrayList)1