以编程方式使用 Android 12 在三星上打开辅助功能权限屏幕

ara*_*ujo 5 android accessibilityservice android-12

我的 Android 应用程序请求可访问性的权限。在旧版本的 Android 上,下面的代码会打开正确的辅助功能权限屏幕。但在 Android 12 的三星上测试,它不起作用。

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

你能帮我解决这个问题吗?

Jus*_*son 0

要在 Android 上请求辅助功能权限,您可以执行以下操作:

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);
}
Run Code Online (Sandbox Code Playgroud)

并且在onActivityResult您可以检查 AccessiblityPermission 是否已启用:

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

    }
Run Code Online (Sandbox Code Playgroud)