如何在Android系统中通过编程获取权限图标?
获取Android权限对应的图标
- Android系统中单个权限通常没有独立图标,权限组才有对应的官方图标,系统权限弹窗、系统应用里显示的都是权限组的图标。
- 先通过权限名称获取其归属的权限组ID:
String permissionGroup = null; try { PermissionInfo permissionInfo = getPackageManager().getPermissionInfo(Manifest.permission.READ_CONTACTS, 0); permissionGroup = permissionInfo.group; } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } - 再通过权限组ID获取组信息并加载图标:
if (permissionGroup != null) { try { PermissionGroupInfo groupInfo = getPackageManager().getPermissionGroupInfo(permissionGroup, 0); Drawable permissionIcon = groupInfo.loadIcon(getPackageManager()); // 此处可直接使用获取到的permissionIcon } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } } - 关键注意事项:
- 部分特殊权限(如
SYSTEM_ALERT_WINDOW)无归属权限组,需自行设置默认图标。 - 该方案仅适配Android 6.0(API 23)及以上版本,低版本需额外兼容。
- 若返回
UNKNOWN,建议先打印permissionInfo.group的值,确认权限对应的实际组ID,避免因组名拼写错误导致失败。
- 部分特殊权限(如
内容的提问来源于stack exchange,提问作者Rutherford Le Blang
相关产品推荐
相关产品推荐

