Как я могу открыть страницу настроек специальных возможностей моего приложения в Android?

Я разрабатываю APT Android на основе функции Accessibility. Поскольку он не может программно Enable/Disable Accessibility Сервис в Android (см. Как программно включить/отключить службу доступности в Android), поэтому я направляю пользователя на Accessibility Settings страницу (Рис. 1), используя следующий код:

public static boolean gotoAccessibilitySettings(Context context) {
    Intent settingsIntent = new Intent(
            Settings.ACTION_ACCESSIBILITY_SETTINGS);
    if (!(context instanceof Activity)) {
        settingsIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    }
    boolean isOk = true;
    try {
        context.startActivity(settingsIntent);
    } catch (ActivityNotFoundException e) {
        isOk = false;
    }
    return isOk;
}

И тогда пользователю нужно узнать метку подменю подстановки моего APP, щелкните по ней, а теперь Accessibility Settings страницу моего показа APP (рис. 2).

Я сомневаюсь, что если какой-либо способ начать мой APP Accessibility Settings Page (Pic 2) напрямую?

Ответ 1

Возможно, приведенный ниже код может вам помочь:

Intent intent = new Intent();
        intent.setClassName("com.android.settings",
                "com.android.settings.Settings");
        intent.setAction(Intent.ACTION_MAIN);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                | Intent.FLAG_ACTIVITY_CLEAR_TASK
                | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
        intent.putExtra(PreferenceActivity.EXTRA_SHOW_FRAGMENT,
                "the fragment which you want show");
        intent.putExtra(PreferenceActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS,
                extras);
       startActivity(intent);

Или вы можете найти ключевое слово "Fragment Injection" для получения дополнительной информации; Проверьте эту ссылку, это полезно для вас:

Ответ 2

Вы можете вручную открыть настройки доступности с помощью следующего Intent (когда android.content.Intent и android.app.Intent оба были импортированы):

Intent intent = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS);
startActivity(intent);

Для получения дополнительной информации просмотрите следующие ресурсы:

Ответ 3

Вы можете напрямую открыть страницу настроек специальных возможностей из приложения настроек, используя Intent to android.provider.Settings.ACTION_ACCESSIBILITY_SETTINGS Для этого вы можете запустить настройки специальных возможностей, передавая намерение как,

startActivityForResult(new Intent(android.provider.Settings.ACTION_ACCESSIBILITY_SETTINGS), INTENT_CODE);

и он вернет результат настроек в onActivityResult() активности вызывающего по коду результата как INTENT_CODE. Вы можете проверить, разрешена ли настройка доступности для вашего приложения или нет.