Android AccessibilityService в выключенном состоянии

Я использую AccessibilityService для отслеживания уведомлений. Я следил за этим и это. Наконец-то это работает, и я узнаю о новых уведомлениях.

Но чтобы подключить AccessibilityService, мне нужно попросить пользователя включить его в ACCESSIBILITY_SETTINGS, что я и делаю следующим образом:

Intent intent = new Intent(android.provider.Settings.ACTION_ACCESSIBILITY_SETTINGS);
startActivityForResult(intent, 0);

Но проблема в том, что я хочу проверить, включил ли пользователь его (AccessibilityService) или нет. Кроме того, я не знаю, что просить пользователей снова включить его, если они уже включили его. Итак, возможно ли это сделать?


person abhi    schedule 26.12.2014    source источник


Ответы (1)


Вы можете проверить, включил ли пользователь вашу службу специальных возможностей, проверив настройки безопасности. Settings.Secure.getString() предоставит вам список включенных служб, разделенных :, и вы сможете проверить, есть ли в нем ваша служба. Что-то вроде этого:

ComponentName compName = new ComponentName(context, MyAccessibilityService.class);
String flatName = compName.flattenToString();
String enabledList = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES);
boolean isEnabled = enabledList != null && enabledList.contains(flatName);
person Steve Blackwell    schedule 19.11.2015