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

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

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

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

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

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);
Другие вопросы по тегам