How can I start the Accessibility Settings Page of my APP in Android?-ThrowExceptions

Exception or error:

I am developing an Android APP based on Accessibility feature. As it can’t programmatically Enable/Disable Accessibility Service in Android(See How to Programmatically Enable/Disable Accessibility Service in Android) , So I guide the user to Accessibility Settings Page(Pic 1) via the code below:

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

And then the user need to find out the Sub Settings Label of my APP, click it, and now the Accessibility Settings Page of my APP show(Pic 2).

I doubt that if any way start my APP’s Accessibility Settings Page(Pic 2) directly?

How to solve:

Maybe the code below can help you :

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

Or you can search the Key Word “Fragment Injection” for more information;
Check out this link,it is useful for you case:

###

You can manually open the accessibility settings with the following Intent (when android.content.Intent and android.app.Intent have both been imported):

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

Check out the following resources for more information:

###

Try this:

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

###

You can directly open the accessibility settings page from settings app using the Intent to android.provider.Settings.ACTION_ACCESSIBILITY_SETTINGS, refer to official docs
To do so, you can start the Accessibility settings by passing intent as,

Intent i = new Intent(android.provider.Settings.ACTION_ACCESSIBILITY_SETTINGS), INTENT_CODE);
startActivity(i);

However, As the ACTION_ACCESSIBILITY_SETTINGS does not return any results, You have to check manually the settings enabled/disabled or not.

Leave a Reply

Your email address will not be published. Required fields are marked *