华为自动关闭无障碍模式权限,怎么解决

华为自动关闭无障碍模式权限,怎么解决

自动需要root: 写个主函数,再写个给无障碍权限的函数(用shell模拟点击),用try调用主函数,如果捕获到无障碍未开启,就调用无障碍的函数,大概思路就这样

以下是一个用 Auto.js 编写的示例代码,其中包含了一个主函数和一个用于检查无障碍权限的辅助函数。代码使用try-catch块来捕获无障碍未开启的情况。

// 主函数
function mainFunction() {
    // 在这里编写主函数的逻辑
    console.log("执行主函数");
}

// 检查无障碍权限的函数
function checkAccessibilityPermission() {
    var cmd = "settings get secure enabled_accessibility_services";
    var result = shell(cmd, true);
    if (!result.error) {
        var output = result.result;
        if (output && output.indexOf("com.yourpackage/.YourAccessibilityService") != -1) {
            console.log("无障碍权限已开启");
            return true;
        } else {
            console.log("无障碍权限未开启");
            return false;
        }
    } else {
        console.error("执行shell命令时出错: " + result.error);
        return false;
    }
}

// 调用主函数,捕获无障碍权限未开启的情况
try {
    mainFunction();
} catch (e) {
    console.error("捕获到异常: " + e);
    if (!checkAccessibilityPermission()) {
        // 无障碍权限未开启,执行相应操作
        console.log("执行无障碍权限未开启的处理逻辑");
        // 这里可以调用你的无障碍函数来模拟点击等操作
    }
}

请注意在上述代码中,"com.yourpackage/.YourAccessibilityService" 部分需要替换为你实际的辅助功能服务的包名和类名。

这段代码首先尝试调用主函数 mainFunction(),如果捕获到异常,则检查无障碍权限,并在无障碍未开启时执行相应的处理逻辑。

希望这个示例对你有帮助。如果你有其他问题或需要更多帮助,请随时告诉我。

其实如果可以的话让开发者加一个设备管理器的权限就可以了,就是有点危险https://blog.csdn.net/u011077027/article/details/93992073