一种应用程序调用第三方库动态提升权限的方法及装置制造方法及图纸

技术编号:24120607 阅读:41 留言:0更新日期:2020-05-13 02:58
本发明专利技术公开一种应用程序调用第三方库动态提升权限的方法,判断目标权限没有处于授权状态时,对目标权限进行授权,弹出选择框,等待用户对选择框进行选择,每隔第一预设时间检测目标权限的状态是否为全部授权,当用户选择授权后应用程序可以正常使用目标权限,实现权限的动态提升;如果不是首次调用申请目标权限且上次选择禁止并勾选下次不再询问则弹出设置对话框,提示用户手动设置进行授权操作,本发明专利技术不需要获取用户点击权限的状态,通过每隔第一预设时间检测目标权限的状态,当检测到目标权限的状态是授权时应用程序可以正常使用目标权限,实现权限的动态提升。

【技术实现步骤摘要】
一种应用程序调用第三方库动态提升权限的方法及装置
本专利技术涉及应用程序领域,特别涉及一种应用程序调用第三方库动态提升权限的方法及装置。
技术介绍
Android6.0之前应用的权限在安装时全部授权,运行时应用程序不再需要询问用户。Android6.0或更高版本对权限进行了分类,分为普通权限和重要权限,普通权限包括网络访问、WiFi状态、音量设置等,对用户隐私或其他应用操作风险小,这些权限在应用安装时授予,在运行时不再询问用户;重要权限则指对用户存储的数据或其他应用的操作产生较大的影响,例如读取通讯录、读写存储器数据、获取用户位置等,对这些涉及用户隐私的权限应在运行时根据用户的需要手动授权。开发者为了提高开发效率、减少开发成本或者集成第三方的产品,在应用内引入相应功能的第三方库模块,但在第三方库内无法获取用户点击权限的状态,从而无法实现权限的动态提升。
技术实现思路
本专利技术的目的是为了克服现有技术的不足,提供一种应用程序调用第三方库动态提升权限的方法。本专利技术提供了一种应用程序调用第三方库动态提升权限的方法,包括:步骤101:第三方库接收应用程序传入的上下文,获取至少一个目标权限;步骤102:根据所述上下文判断目标权限是否全部处于授权状态,是则结束,否则执行步骤103;步骤103:判断是否为首次调用申请目标权限,是则执行步骤104,否则执行步骤108;步骤104:根据所述上下文对目标权限进行申请,系统弹出选择框;步骤105:等待用户对选择框进行选择;步骤106:每隔第一预设时间检测目标权限是否全部授权,是则应用程序可以正常使用目标权限,否则执行步骤107;步骤107:判断检测时间是否超过第二预设时间,是则超时,结束,否则返回步骤106;步骤108:判断上次是否选择禁止并勾选下次不再询问,是则弹出设置对话框,提示用户手动设置进行授权操作,否则执行步骤104。本专利技术还提供了一种应用程序调用第三方库动态提升权限的装置,包括:接收获取模块,用于接收应用程序传入的上下文,获取至少一个目标权限;第一判断模块,用于根据所述上下文判断目标权限是否全部处于授权状态,是则结束,否则触发第二判断模块;所述第二判断模块,用于判断是否为首次调用申请目标权限,是则触发第一申请模块,否则触发第四判断模块;所述第一申请模块,用于根据所述上下文对目标权限进行申请,系统弹出选择框;第一等待选择模块,用于等待用户对选择框进行选择;第一检测模块,用于每隔第一预设时间检测目标权限是否全部授权,是则应用程序可以正常使用目标权限,否则触发第三判断模块;所述第三判断模块,用于判断检测时间是否超过第二预设时间,是则超时,结束,否则触发所述第一检测模块;所述第四判断模块,用于判断上次是否选择禁止并勾选下次不再询问,是则触发第一设置模块,否则触发所述第一申请模块;所述第一设置模块,用于弹出设置对话框,提示用户手动设置进行授权操作。本专利技术还提供了一种电子设备,包括:处理器和存储器;所述存储器,用于存储操作指令;所述处理器,用于通过调用所述操作指令,执行上述的应用程序调用第三方库动态提升权限的方法。本专利技术还提供了一种计算机可读存储介质,所述计算机存储介质用于存储计算机指令,当其在计算机上运行时,使得计算机执行上述的应用程序调用第三方库动态提升权限的方法。本专利技术与现有技术相比,具有以下优点:本专利技术提供了一种应用程序调用第三方库动态提升权限的方法,判断目标权限没有处于授权状态时,对目标权限进行授权,弹出选择框,等待用户对选择框进行选择,每隔第一预设时间检测目标权限的状态是否为全部授权,当用户选择授权后应用程序可以正常使用目标权限,实现权限的动态提升;如果不是首次调用申请目标权限且上次选择禁止并勾选下次不再询问则弹出设置对话框,提示用户手动设置进行授权操作,本专利技术不需要获取用户点击权限的状态,通过每隔第一预设时间检测目标权限的状态,当检测到目标权限的状态是授权时应用程序可以正常使用目标权限,实现权限的动态提升。附图说明图1为本专利技术实施例一提供的一种应用程序调用第三方库动态提升权限的方法的流程图;图2为本专利技术实施例二提供的一种应用程序调用第三方库动态提升权限的方法的流程图;图3为本专利技术实施例三提供的一种应用程序调用第三方库动态提升权限的方法的流程图;图4为本专利技术实施例四提供的一种应用程序调用第三方库动态提升权限的方法的流程图;图5为本专利技术实施例五提供的一种应用程序调用第三方库动态提升权限的设置的方框图;图6为本专利技术实施例六提供的一种应用程序调用第三方库动态提升权限的电子设备的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例一本专利技术实施例一提供一种应用程序调用第三方库动态提升权限的方法,如图1所示,包括:步骤101:第三方库接收应用程序传入的上下文,获取至少一个目标权限;具体的,上下文是与有关应用程序环境的全局信息的接口,是一个抽象类,其实现由安卓系统提供,上下文允许访问特定于应用程序的资源和类,以及对应用程序级操作(如启动活动,广播和接收意图等)的调用;其中,目标权限指应用程序运行时涉及到用于隐私信息或者会对其他应用程序造成不利影响的权限;具体的,目标权限包括定位、读取通讯录、读写存储器数据等;步骤102:根据上下文判断目标权限是否全部处于授权状态,是则结束,否则执行步骤103;在本实施例中,步骤102具体包括:根据上下文调用权限检测接口判断目标权限是否处于授权状态,是则结束,否则执行步骤103;具体的,权限检测接口checkSelfPermission()判断目标权限是否处于授权状态,如果返回值是PERMISSION_GRANTED则目标权限处于授权状态,结束;如果返回值是PERMISSION_DENIED则目标权限处于禁止状态,执行步骤103;具体的,在步骤101和步骤102之间还包括:步骤a1:判断应用程序编程接口级别是否小于第一预设值,是则结束,否则执行步骤a2;具体的,第一预设值为23;具体的,应用程序编程接口级别(APIlevel)如果小于第一预设值,则操作系统为Android6.0以下版本,不需要动态申请权限;步骤a2:判断软件开发工具包版本是否小于第一预设值,是则结束,否则执行步骤102;具体的,软件开发工具包版本(targetSdkVersion)如果小于第一预设值,则编译应用程序加载库的版本是Android6.0以下,结束,否则执行步骤1本文档来自技高网...

【技术保护点】
1.一种应用程序调用第三方库动态提升权限的方法,其特征在于,包括:/n步骤101:第三方库接收应用程序传入的上下文,获取至少一个目标权限;/n步骤102:根据所述上下文判断目标权限是否全部处于授权状态,是则结束,否则执行步骤103;/n步骤103:判断是否为首次调用申请目标权限,是则执行步骤104,否则执行步骤108;/n步骤104:根据所述上下文对目标权限进行申请,系统弹出选择框;/n步骤105:等待用户对选择框进行选择;/n步骤106:每隔第一预设时间检测目标权限是否全部授权,是则应用程序可以正常使用目标权限,否则执行步骤107;/n步骤107:判断检测时间是否超过第二预设时间,是则超时,结束,否则返回步骤106;/n步骤108:判断上次是否选择禁止并勾选下次不再询问,是则弹出设置对话框,提示用户手动设置进行授权操作,否则执行步骤104。/n

【技术特征摘要】
1.一种应用程序调用第三方库动态提升权限的方法,其特征在于,包括:
步骤101:第三方库接收应用程序传入的上下文,获取至少一个目标权限;
步骤102:根据所述上下文判断目标权限是否全部处于授权状态,是则结束,否则执行步骤103;
步骤103:判断是否为首次调用申请目标权限,是则执行步骤104,否则执行步骤108;
步骤104:根据所述上下文对目标权限进行申请,系统弹出选择框;
步骤105:等待用户对选择框进行选择;
步骤106:每隔第一预设时间检测目标权限是否全部授权,是则应用程序可以正常使用目标权限,否则执行步骤107;
步骤107:判断检测时间是否超过第二预设时间,是则超时,结束,否则返回步骤106;
步骤108:判断上次是否选择禁止并勾选下次不再询问,是则弹出设置对话框,提示用户手动设置进行授权操作,否则执行步骤104。


2.如权利要求1所述的方法,其特征在于,所述步骤103至所述步骤108可替换为:
步骤203:判断是否为首次调用申请目标权限,是则执行步骤204,否则执行步骤208;
步骤204:根据所述上下文对单目标权限进行申请,系统弹出选择框;
步骤205:等待用户对选择框进行选择;
步骤206:每隔第一预设时间检测目标权限是否授权,是则应用程序可以正常使用目标权限,返回执行步骤102,否则执行步骤207;
步骤207:判断检测时间是否超过第二预设时间,是则超时,结束,否则返回步骤206;
步骤208:判断上次是否选择禁止并勾选下次不再询问,是则弹出设置对话框,提示用户手动设置进行授权操作,否则执行步骤204。


3.如权利要求1或2所述的方法,其特征在于,所述步骤101和步骤102之间还包括:
步骤a1:判断应用程序编程接口级别是否小于第一预设值,是则结束,否则执行步骤a2;
步骤a2:判断软件开发工具包版本是否小于第一预设值,是则结束,否则执行步骤102。


4.如权利要求1或2所述的方法,其特征在于,所述步骤102具体包括:根据所述上下文调用权限检测接口判断目标权限是否处于授权状态,是则结束,否则执行步骤103。


5.如权利要求1所述的方法,其特征在于,所述步骤104具体包括:
步骤104-1:判断目标权限的个数是否大于第二预设值,是则执行步骤104-2,否则执行步骤104-3;
步骤104-2:根据所述上下文对多目标权限进行申请,系统弹出选择框;
步骤104-3:根据所述上下文对单目标权限进行申请,系统弹出选择框。


6.如权利要求5所述的方法,其特征在于,所述步骤104-2具体包括:根据所述上下文调用申请权限接口对多目标权限进行申请,系统弹出选择框。


7.如权利要求1所述的方法,其特征在于,所述步骤108具体包括:根据应显示请求许可函数判断上次是否选择禁止并勾选下次不再询问,如应显示请求许可函数的返回值为false,则上次选择禁止并勾选下次不再询问,弹出设置对话框,提示用户手动设置进行授权操作;如应显示请求许可函数的返回值为ture,则上次选择禁止,但并未勾选下次不再询问,执行步骤104。


8.一种应用程序调用第三方库动态提升权限的装置,其特征在于,包括:
接收获取模块,用于接收应用程序传入的上下文,获取至少一个目标权限;
第一判断模块,用于根据所述上下文判断目标权限是否全部处于授权状态,是则结束,否则触发第二判断模块;
所述第二判断模块,用于判断是否为首次调用申请目标权限,是则触发第一申请模块,否则触发第四判断...

【专利技术属性】
技术研发人员:陆舟于华章
申请(专利权)人:飞天诚信科技股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1