5

My android application requests permission for accessibility. On older versions of android, the code below opens the correct accessibility permission screen. But testing on a samsung with android 12, it doesn't work.

private void launchPermission() {
        AppOpsManager ops = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
        Intent intent = new Intent("android.settings.ACCESSIBILITY_SETTINGS");
        startActivity(intent);
}

Can you help me to solve this problem?

araraujo
  • 613
  • 2
  • 8
  • 17

2 Answers2

0

To request Accessibility Permission on Android, you could do something like this:

private final int requestCodeForAccessbility = 32423; //This can be any random number;

private void requestAccessiblityPermission() {
   Intent intent = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS);
   getActivity().startActivityForResult(intent, requestCodeForAccessibility);
}

and in your onActivityResult you could check if AccessiblityPermission is enabled:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    try {
            if (requestCode == requestCodeForAccessibility) {
                //Check if accessibility service is turned on or off.
            }
        } catch (Exception ex) {
            //Handle errors
        }

    }
Just a Person
  • 1,276
  • 1
  • 5
  • 23
0

Check following steps:

  1. Declare in AndroidManifest.xml file:

    <uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE" />

  2. Request the accessibility permission:

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

Somaye
  • 1
  • 2