Android: How do you check if a particular AccessibilityService is enabled

Since API Level 14, it is also possible to obtain the enabled accessibility services through the AccessibilityManager: public static boolean isAccessibilityServiceEnabled(Context context, Class<? extends AccessibilityService> service) { AccessibilityManager am = (AccessibilityManager) context.getSystemService(Context.ACCESSIBILITY_SERVICE); List<AccessibilityServiceInfo> enabledServices = am.getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_ALL_MASK); for (AccessibilityServiceInfo enabledService : enabledServices) { ServiceInfo enabledServiceInfo = enabledService.getResolveInfo().serviceInfo; if (enabledServiceInfo.packageName.equals(context.getPackageName()) && enabledServiceInfo.name.equals(service.getName())) return true; } return false; … Read more

Enable access for assistive devices programmatically on 10.9

This doesn’t answer your question, but it’s good to know about a new API call that appeared in 10.9 and lets you display the authorization screen or bypass it: NSDictionary *options = @{(id)kAXTrustedCheckOptionPrompt: @YES}; BOOL accessibilityEnabled = AXIsProcessTrustedWithOptions((CFDictionaryRef)options); Passing YES will force the authorization screen to appear, passing NO will silently skip it. The return … Read more