一种Android系统权限管理方法与流程

文档序号:11627796阅读:646来源:国知局
一种Android系统权限管理方法与流程

本发明属于移动终端android系统技术领域,尤其涉及一种android系统权限管理方法。



背景技术:

android系统permission机制的大部分功能都有android系统代码完成,在系统安全得到保证的前提下,访问者与资源间的访问控制是可以得到保证的。但是粗粒度的权限访问控制能力管理,使得permission机制存在一系列的安全问题。由于不显示授权界面、权限描述不清和粗粒度的用户访问控制能力管理引发用户permission确认过程中的安全隐患,导致应用程序过度申请权限、滥用权限和系统权限管理难度增加。

综上所述,现有技术存在的问题是:由于不显示授权界面、权限描述不清和粗粒度的用户访问控制能力管理引发用户permission确认过程中的安全隐患,以及permission传递机制管理的漏洞为攻击者提供了合谋攻击的途径。现有技术提供一站式服务,相当于应用程序安装时,接受应用程序所申请的所有权限,否则,不能安装该应用程序。这种一站式服务没有提供后期的权限维护和修改、申请功能,而权限管理功能封装在框架层,对于开发者而言,必须深入android系统的开发,对其做相应的修改。



技术实现要素:

针对现有技术存在的问题,本发明提供了一种android系统权限管理方法。

本发明是这样实现的,一种android系统权限管理方法,所述android系统权限管理方法包括以下步骤:

应用程序访问权限api,进行权限检查;

应用程序权限不存在时进入权限申请;

应用程序权限存在,android系统权限管理数据查询应用程序对应的应用进程权限;

根据应用进程权限的查询结果,执行相应操作。

进一步,应用程序根据访问api所需的权限调用checkselfpermission()方法,检测应用是否拥有该权限,当应用程序拥有该权限时,进入权限提示模块,否则进入权限申请模块。

进一步,权限申请在程序中对权限进行动态的申请。

进一步,应用进程权限包括允许、提示和拒绝。

进一步,当应用程序对应权限为允许时,应用程序正常调用权限的api;

当应用程序对应权限为提示时,应用程序暂停执行,弹出对话框并接受用户的选择,根据用户的选择来决定是否继续执行;

当应用程序对应权限为拒绝时,应用程序继续执行,不能调用需要权限的api。

本发明的另一目的在于提供一种利用所述android系统权限管理方法的基于android6.0及以上版本权限新特性的权限管理方法,所述基于android6.0及以上版本权限新特性的权限管理方法具体步骤包括如下:

步骤一,权限检测:

程序封装一个方法haspermission(),传入的参数为权限名数组,调用checkselfpermission(),同时传入参数为权限名数组,根据返回值来检测是否拥有权限;

步骤二,权限申请:

程序封装一个权限申请方法requestpermission(),权限申请方法的参数为申请码和权限名数组在方法中调用requestpermissions(),权限申请方法参数为权限名数组和context以及申请码;

步骤三,请求回调处理:

重写一个方法onrequestpermissionresult(),主要的参数有申请码、权限名数组,调用switch结构,根据申请码进行区分请求。

本发明的另一目的在于提供一种应用所述android系统权限管理方法的移动终端。

本发明的另一目的在于提供一种应用所述android系统权限管理方法的android系统。

本发明的优点及积极效果为:

本发明通过在程序中增加权限检测、申请和回调方法,因此结合了android6.0及以上版本的权限管理新特性,增量权限在应用层申请的功能,解决了android权限不能动态申请的问题。

本发明通过在权限管理中增加允许、提示和禁止功能,增加用户自主控制应用程序权限的能力,解决了android粗粒度的权限管理问题。

附图说明

图1是本发明实施例提供的基于android6.0系统权限管理方法流程图。

图2是本发明实施例提供的基于android6.0权限新特性的权限管理方法流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例提供的基于android6.0及以上版本系统权限管理方法。

下面结合附图对本发明的应用原理作详细的描述。

如图1所示,本发明实施例基于android6.0提供的系统权限管理方法包括以下步骤:

s101:应用程序访问需要权限的api时,程序本身进行权限检查;

s102:应用程序权限不存在时进入权限申请模块;

s103:应用程序权限存在时,在android系统的权限管理数据查询所述应用程序对应的应用进程权限;

s104:根据所述应用进程权限的查询结果,执行相应操作。

下面结合附图对本发明的应用原理作进一步的描述。

本发明实施例提供的android系统权限管理方法包括以下步骤:

步骤一,当应用程序访问需要权限的api时,程序本身进行权限检查

应用程序根据访问api所需的权限调用checkselfpermission()方法,检测应用是否拥有该权限,当应用程序拥有该权限时,进入权限提示模块,否则进入权限申请模块。

在本发明实施例中,android系统的权限管理数据来自于/data/system/packages.xml文件中,开机时直接读取该文件,加载权限信息到内存。应用程序的标识用于区分应用程序,该应用程序标识可以是包名。

需要权限的数据大致分为系统资源和应用程序资源。系统资源包括android系统提供的各种服务、硬件设备、各种数据库资源。应用程序的资源包括构成应用程序的四大主键。这些资源通过对访问者提出能力要求,实现访问控制。

步骤二,当应用程序权限不存在时进入权限申请模块

在权限申请模块主要运用android6.0关于权限的新特性,在程序中对权限进行动态的申请。

步骤三,当应用程序权限存在时,在android系统的权限管理数据查询所述应用程序对应的应用进程权限。

在本发明实例中,应用进程权限包括允许、提示和拒绝。

步骤四,当根据所述应用进程权限的查询结果,执行相应操作。

当应用程序对应权限为允许时,应用程序正常调用需要该权限的api;

当应用程序对应权限为提示时,应用程序暂停执行,弹出对话框并接受用户的选择,根据用户的选择来决定是否继续执行;

当应用程序对应权限为拒绝时,应用程序继续执行,但不能调用需要该权限的api。

需要说明的是,弹出对话框为dialog对话框,提示用户索要读取的数据或者访问的服务,并接受用户的选择允许或拒绝。

如图2所示,本发明实施例提供的基于android6.0权限新特性的权限管理方法具体步骤包括如下:

步骤一,权限检测

程序封装一个方法haspermission(),传入的参数为权限名数组,在方法中调用checkselfpermission(),同时传入参数为权限名数组,根据方法的返回值来检测是否拥有该权限。

步骤二,权限申请

程序封装一个权限申请方法requestpermission(),方法的主要参数为申请码和权限名数组在方法中调用requestpermissions(),方法的主要参数为权限名数组和context以及申请码。

步骤三,请求回调处理

重写一个方法onrequestpermissionresult(),主要的参数有申请码、权限名数组。调用switch结构,根据申请码进行区分请求。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1