Android获取程序详细权限信息

2024-04-29 00:48

本文主要是介绍Android获取程序详细权限信息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我们大家平时打开android程序管理的选项,可以看到一个程序的权限列表,内容详细。如下图所示:

 

                                                      

 

我就想自习写程序得到一个程序的权限列表。

由于系统程序里实现了这个功能,系统源码肯定有这段代码。经过上网搜索,找到实现这个功能的方面类AppSecurityPermissions,大家可以在源码里找到这个java文件。我用两种方法实现了该功能。

 

方法一. 精简AppSecurityPermissions代码,实现了功能。

[java] view plaincopy
  1. private void getPermisson(Context context) {  
  2.         try {  
  3.             PackageManager pm = context.getPackageManager();  
  4.             PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0);  
  5.             // 得到自己的包名  
  6.             String pkgName = pi.packageName;  
  7.   
  8.             PackageInfo pkgInfo = pm.getPackageInfo(pkgName,  
  9.                     PackageManager.GET_PERMISSIONS);//通过包名,返回包信息  
  10.             String sharedPkgList[] = pkgInfo.requestedPermissions;//得到权限列表  
  11.   
  12.             for (int i = 0; i < sharedPkgList.length; i++) {  
  13.                 String permName = sharedPkgList[i];  
  14.   
  15.                 PermissionInfo tmpPermInfo = pm.getPermissionInfo(permName, 0);//通过permName得到该权限的详细信息  
  16.                 PermissionGroupInfo pgi = pm.getPermissionGroupInfo(  
  17.                         tmpPermInfo.group, 0);//权限分为不同的群组,通过权限名,我们得到该权限属于什么类型的权限。  
  18.                   
  19.                 tv.append(i + "-" + permName + "\n");  
  20.                 tv.append(i + "-" + pgi.loadLabel(pm).toString() + "\n");  
  21.                 tv.append(i + "-" + tmpPermInfo.loadLabel(pm).toString()+ "\n");  
  22.                 tv.append(i + "-" + tmpPermInfo.loadDescription(pm).toString()+ "\n");  
  23.                 tv.append(mDivider + "\n");  
  24.   
  25.             }  
  26.         } catch (NameNotFoundException e) {  
  27.             Log.e("##ddd""Could'nt retrieve permissions for package");  
  28.   
  29.         }  
  30.     }  


主要通过PackageManager得到该程序的权限列表,然后通过权限的名字得到该权限的PermissionInfo。得到详细信息。得到结果如下图所示:

 

                                                

 

方法二。 直接用AppSecurityPermissions类,经过导入资源文件,实现了功能。具体代码我下面直接把工程打包。大家可以直接看里面的代码。下面只把效果图展示出来,如下图所示:

 

我比较喜欢第一种,得到你想要的信息,界面你可以根据自己的想法来设计,并且代码量少。

 程序下载地址:http://download.csdn.net/source/3567257

原文地址:点击打开链接

这篇关于Android获取程序详细权限信息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/944705

相关文章

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

基于C#实现PDF转图片的详细教程

《基于C#实现PDF转图片的详细教程》在数字化办公场景中,PDF文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因

Java中HashMap的用法详细介绍

《Java中HashMap的用法详细介绍》JavaHashMap是一种高效的数据结构,用于存储键值对,它是基于哈希表实现的,提供快速的插入、删除和查找操作,:本文主要介绍Java中HashMap... 目录一.HashMap1.基本概念2.底层数据结构:3.HashCode和equals方法为什么重写Has

Android协程高级用法大全

《Android协程高级用法大全》这篇文章给大家介绍Android协程高级用法大全,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友跟随小编一起学习吧... 目录1️⃣ 协程作用域(CoroutineScope)与生命周期绑定Activity/Fragment 中手

Java使用正则提取字符串中的内容的详细步骤

《Java使用正则提取字符串中的内容的详细步骤》:本文主要介绍Java中使用正则表达式提取字符串内容的方法,通过Pattern和Matcher类实现,涵盖编译正则、查找匹配、分组捕获、数字与邮箱提... 目录1. 基础流程2. 关键方法说明3. 常见场景示例场景1:提取所有数字场景2:提取邮箱地址4. 高级

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程