You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检查Android中ACCESS_RESTRICTED_SETTINGS权限是否启用?

检查ACCESS_RESTRICTED_SETTINGS权限是否启用的Java代码

可以通过AppOpsManager来检查该权限的状态,因为ACCESS_RESTRICTED_SETTINGS属于Android 12及以上的特殊权限,无法用常规的checkSelfPermission方法验证。以下是具体实现代码:

import android.app.AppOpsManager;
import android.content.Context;
import android.os.Build;

public class PermissionChecker {
    public static boolean isRestrictedSettingsPermissionEnabled(Context context) {
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {
            // Android 12以下不存在该权限,直接返回false
            return false;
        }
        
        AppOpsManager appOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
        int mode = appOpsManager.checkOpNoThrow(
                "android:access_restricted_settings",
                android.os.Process.myUid(),
                context.getPackageName()
        );
        
        return mode == AppOpsManager.MODE_ALLOWED;
    }
}

说明

  • 该权限仅在Android 12(API 31)及以上版本存在,低版本直接返回false
  • checkOpNoThrow方法返回的操作模式:
    • MODE_ALLOWED:权限已启用
    • MODE_IGNORED或其他值:权限未启用
  • 即使权限状态返回启用,部分受限设置项仍可能因系统策略无法访问,需结合实际场景测试

内容的提问来源于stack exchange,提问作者FLASHCODER

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 03:15:42