AccessibilityService 代码开启

1、判断无障碍是否开启

    /**
     * 判断无障碍服务是否开启
     *
     * @param context
     * @return
     */
    public static boolean isStartAccessibilityServiceEnable(Context context) {
        AccessibilityManager accessibilityManager =
                (AccessibilityManager) context.getSystemService(Context.ACCESSIBILITY_SERVICE);
        assert accessibilityManager != null;
        List<AccessibilityServiceInfo> accessibilityServices =
                accessibilityManager.getEnabledAccessibilityServiceList(
                        AccessibilityServiceInfo.FEEDBACK_ALL_MASK);
        for (AccessibilityServiceInfo info : accessibilityServices) {
            if (info.getId().contains(context.getPackageName())) {
                return true;
            }
        }
        return false;
    }

2、代码中开启无障碍

    /**
     * 初始化无障碍
     */
    private void initAccessibilityService() {
        RootCmd.execCmd("pm grant camera.app.com.backward android.permission.READ_PHONE_STATE");
        boolean b = RootCmd.execCmd("pm grant camera.app.com.backward android.permission.WRITE_SECURE_SETTINGS");
        if (b) {
            Log.d("system", "WRITE_SECURE_SETTINGS SUCCESS!");
//                自动开启无障碍服务
            if (!ServiceUtils.isStartAccessibilityServiceEnable(this)) {
                Settings.Secure.putString(getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES,
                        getPackageName() + "/" + getPackageName() + ".service.AutoClickService");
                Settings.Secure.putInt(getContentResolver(), Settings.Secure.ACCESSIBILITY_ENABLED, 1);
                Log.d("system", "SETTING ACCESSIBILITY SUCCESS!");
            }
        }
    }
发布了45 篇原创文章 · 获赞 22 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_24542767/article/details/103580022
今日推荐