Search code examples
androidaccessibilityinversion

Get enable/disable status and of accessibility Colour inversion mode


In my application i need to make some UI changes when user enable accessibility colour inversion mode.

Do we have any api to check enable/disable status of colour inversion mode in android?


Solution

  • Below is the code to check enable/disable status of accessibility inversion mode. In some phone inversion mode will be available as "Negative colour".

    public boolean isInversionModeEnabled() {
        boolean isInversionEnabled =  false;
        int accessibilityEnabled = 0;
        try {
            accessibilityEnabled = Settings.Secure.getInt(this.getContentResolver(),
                    android.provider.Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED);
        } catch (SettingNotFoundException e) {
            Log.d(TAG, "Error finding setting ACCESSIBILITY_DISPLAY_INVERSION_ENABLED: " + e.getMessage());
            Log.d(TAG, "Checking negative color enabled status");
            final String SEM_HIGH_CONTRAST = "high_contrast";
            accessibilityEnabled = Settings.System.getInt(getContentResolver(), SEM_HIGH_CONTRAST, 0);
        }
        if (accessibilityEnabled == 1) {
            Log.d(TAG, "inversion  or negative colour is enabled");
            isInversionEnabled = true;
        } else {
            Log.d(TAG, "inversion  or negative colour is disabled");
        }
        return isInversionEnabled;
    
    }