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);