G06F21/51 G06F21/62
1.一种应用程序的权限管理方法,其特征在于,包括:
获取应用程序的权限申请指令,所述权限申请指令用于申请授予所述应用程序的权限;
响应于所述权限申请指令,授予所述应用程序所申请的权限;
当监测到用于触发所述应用程序的权限撤销机制的事件时,回收所述应用程序的所述权限,所述应用程序的状态回退至所述应用程序在申请所述权限时或调用所述权限前的所述应用程序的状态。
2.根据权利要求1所述的方法,其特征在于,所述应用程序的状态包括所述应用程序的界面状态、后台服务状态、存储状态或接收消息状态中的一项或多项。
3.根据权利要求1或2所述的方法,其特征在于,所述用于触发所述应用程序的权限撤销机制的事件包括所述应用程序从前台切换至后台,且所述应用程序的权限包括一次性授权的权限;或者,所述用于触发所述应用程序的权限撤销机制的事件包括所述应用程序从前台切换至后台,并在后台持续预设时长,且所述应用程序的权限包括一次性授权的权限。
4.根据权利要求1或2所述的方法,其特征在于,所述用于触发所述应用程序的权限撤销机制的事件包括所述应用程序位于后台,设置应用位于前台,并且检测到用户对所述设置应用执行取消所述应用程序的所述权限的操作。
5.根据权利要求1或2所述的方法,其特征在于,所述用于触发所述应用程序的权限撤销机制的事件包括所述应用程序所在的电子设备的屏幕由亮屏变为灭屏;或者,所述用于触发所述应用程序的权限撤销机制的事件包括所述应用程序所在的电子设备的屏幕变为锁定状态。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
记录所述应用程序的权限-进程关联调用栈信息,所述权限-进程关联调用栈信息表示所述应用程序在申请所述权限时的进程节点上或调用所述权限前的任意进程节点上的所述应用程序的状态。
7.根据权利要求6所述的方法,其特征在于,所述权限-进程关联调用栈信息包括所述应用程序在申请所述权限时的调用栈信息和权限类型标识信息,所述在申请所述权限时的调用栈信息用于表示在申请所述权限所在的进程节点上的所述应用程序的状态,所述权限类型标识信息用于标识所述权限;或者,
所述权限-进程关联调用栈信息包括所述应用程序在申请所述权限至调用所述权限之间任意一个或多个进程节点的调用栈信息和权限类型标识信息,所述在申请所述权限至调用所述权限之间任意一个或多个进程节点的调用栈信息用于表示在申请所述权限至调用所述权限之间任意一个或多个进程节点的所述应用程序的状态,所述权限类型标识信息用于标识所述权限。
8.根据权利要求7所述的方法,其特征在于,所述权限-进程关联调用栈信息还包括应用标识信息,所述应用标识信息用于标识所述应用程序。
9.根据权利要求7或8所述的方法,其特征在于,所述方法还包括:
根据所述权限的权限类型标识信息,在所述权限-进程关联调用栈信息中,获取所述应用程序在申请所述权限时或调用所述权限前的所述应用程序的状态。
10.根据权利要求1至9任一项所述的方法,其特征在于,所述响应于所述权限申请指令,授予所述应用程序所申请的权限,包括:
响应于所述权限申请指令,显示弹窗,检测到用户作用于所述弹窗的第一操作,所述第一操作用于指示授予所述应用程序所申请的权限;
响应于所述第一操作,授予所述应用程序所申请的权限。
11.根据权利要求10所述的方法,其特征在于,所述授予所述应用程序所申请的权限,包括:一次性授予所述应用程序所申请的权限。
12.根据权利要求1至11任一项所述的方法,其特征在于,所述权限包括正常权限、签名权限或危险权限。
13.根据权利要求1至11任一项所述的方法,其特征在于,所述权限包括位置权限、麦克风权限、摄像头权限或传感器权限。
14.一种应用程序的权限管理装置,其特征在于,包括:
获取模块,用于获取应用程序的权限申请指令,所述权限申请指令用于申请授予所述应用程序的权限;
权限管理模块,用于响应于所述权限申请指令,授予所述应用程序所申请的权限;
所述权限管理模块,还用于当监测到用于触发所述应用程序的权限撤销机制的事件时,回收所述应用程序的所述权限,所述应用程序的状态回退至所述应用程序在申请所述权限时或调用所述权限前的所述应用程序的状态。
15.根据权利要求14所述的装置,其特征在于,所述应用程序的状态包括所述应用程序的界面状态、后台服务状态、存储状态或接收消息状态中的一项或多项。
16.根据权利要求14或15所述的装置,其特征在于,所述用于触发所述应用程序的权限撤销机制的事件包括所述应用程序从前台切换至后台,且所述应用程序的权限包括一次性授权的权限;或者,所述用于触发所述应用程序的权限撤销机制的事件包括所述应用程序从前台切换至后台,并在后台持续预设时长,且所述应用程序的权限包括一次性授权的权限。
17.根据权利要求14或15所述的装置,其特征在于,所述用于触发所述应用程序的权限撤销机制的事件包括所述应用程序位于后台,设置应用位于前台,并且检测到用户对所述设置应用执行取消所述应用程序的所述权限的操作。
18.根据权利要求14或15所述的装置,其特征在于,所述用于触发所述应用程序的权限撤销机制的事件包括所述应用程序所在的电子设备的屏幕由亮屏变为灭屏;或者,所述用于触发所述应用程序的权限撤销机制的事件包括所述应用程序所在的电子设备的屏幕变为锁定状态。
19.根据权利要求14至18任一项所述的装置,其特征在于,所述权限管理模块还用于:
记录所述应用程序的权限-进程关联调用栈信息,所述权限-进程关联调用栈信息表示所述应用程序在申请所述权限时的进程节点上或调用所述权限前的任意进程节点上的所述应用程序的状态。
20.根据权利要求19所述的装置,其特征在于,所述权限-进程关联调用栈信息包括所述应用程序在申请所述权限时的调用栈信息和权限类型标识信息,所述在申请所述权限时的调用栈信息用于表示在申请所述权限所在的进程节点上的所述应用程序的状态,所述权限类型标识信息用于标识所述权限;或者,
所述权限-进程关联调用栈信息包括所述应用程序在申请所述权限至调用所述权限之间任意一个或多个进程节点的调用栈信息和权限类型标识信息,所述在申请所述权限至调用所述权限之间任意一个或多个进程节点的调用栈信息用于表示在申请所述权限至调用所述权限之间任意一个或多个进程节点的所述应用程序的状态,所述权限类型标识信息用于标识所述权限。
21.根据权利要求20所述的装置,其特征在于,所述权限-进程关联调用栈信息还包括应用标识信息,所述应用标识信息用于标识所述应用程序。
22.根据权利要求20或21所述的装置,其特征在于,所述权限管理模块还用于:
根据所述权限的权限类型标识信息,在所述权限-进程关联调用栈信息中,获取所述应用程序在申请所述权限时或调用所述权限前的所述应用程序的状态。
23.根据权利要求14至22任一项所述的装置,其特征在于,所述权限管理模块用于:
响应于所述权限申请指令,显示弹窗,检测到用户作用于所述弹窗的第一操作,所述第一操作用于指示授予所述应用程序所申请的权限;
响应于所述第一操作,授予所述应用程序所申请的权限。
24.根据权利要求23所述的装置,其特征在于,所述权限管理模块用于:一次性授予所述应用程序所申请的权限。
25.根据权利要求14至24任一项所述的装置,其特征在于,所述权限包括正常权限、签名权限或危险权限。
26.根据权利要求14至24任一项所述的装置,其特征在于,所述权限包括位置权限、麦克风权限、摄像头权限或传感器权限。
27.一种电子设备,其特征在于,所述电子设备包括:一个或多个处理器;一个或多个存储器;其中,所述一个或多个存储器用于存储一个或多个程序;所述一个或多个处理器用于运行所述一个或多个程序,以实现如权利要求1-13中任一项所述的方法。
28.一种计算机可读存储介质,其特征在于,包括计算机程序,所述计算机程序在计算机上被执行时,使得所述计算机执行如权利要求1-13中任一项所述的方法。
29.一种芯片,其特征在于,包括处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行如权利要求1-13中任一项所述的方法。
本申请涉及计算机技术,尤其涉及一种应用程序的权限管理方法和电子设备。
随着计算机技术的发展,越来越多的应用程序(Application,APP)被开发并安装到智能手机或平板电脑等电子设备上,以完善电子设备的功能和个性化,为用户提供更为丰富的使用体验。
应用程序在需要访问电子设备的一些数据或资源时,可以向电子设备的系统申请访问这些数据或资源的权限。在系统或用户经系统授予该权限后,应用程序可以访问这些数据或资源。应用程序向电子设备的系统申请的权限可以包括各种访问权限,例如,读取通讯录权限、读取短信权限、调用摄像头权限等。为了保护电子设备的系统和用户数据安全,电子设备的系统可以在一些情况下回收已经授予的权限。例如,电子设备的系统在接收到用户关闭应用程序的调用摄像头权限的操作时,响应于该操作,电子设备的系统回收该应用程序的调用摄像头权限,之后,应用程序无法调用电子设备的摄像头,也无法获取该电子设备通过摄像头所得到的数据。
电子设备的系统在回收应用程序的已经授予的权限时,需要关闭(也称杀死)该应用程序的进程,才能回收该权限。然而,通过关闭进程的方式回收权限,会导致系统的后台没有该应用程序的任何进程,用户经系统再次打开该应用程序时,系统会重新给该应用程序分配进程,即冷启动该应用程序。冷启动应用程序,会使得系统重新加载该应用程序的启动流程,电子设备显示该应用程序的开启主界面。换言之,系统回收应用程序的已经授予的权限,会导致用户未主动关闭的该应用程序关闭,影响用户使用体验。
本申请提供一种应用程序的权限管理方法和电子设备,以减少应用程序再次启动的时间,提升用户使用体验。
第一方面,本申请实施例提供一种应用程序的权限管理方法,该方法可以包括:获取应用程序的权限申请指令,该权限申请指令用于申请授予该应用程序的权限。响应于该权限申请指令,授予该应用程序所申请的权限。当监测到用于触发该应用程序的权限撤销机制的事件时,回收该应用程序的该权限,该应用程序的状态回退至应用程序在申请该权限时或调用该权限前的应用程序的状态。
本实现方式,在回收应用程序的权限时,可以将应用程序的状态回退至应用程序在权限申请时或权限调用前的状态,从而使得应用程序处于权限申请时或权限调用前的运行状态,避免应用程序的进程因权限回收而被关闭,从而可以减少应用程序再次启动的时间,提升用户使用体验。
一种可能的设计中,该应用程序的状态包括该应用程序的界面状态、后台服务状态、存储状态或接收消息状态中的一项或多项。
该存储状态可以是内存中数据的状态。
本实现方式,在回收应用程序的权限时,通过将应用程序的界面状态、后台服务状态、存储状态或接收消息状态中的一项或多项,回退至应用程序在权限申请时或权限调用前的状态,从而使得应用程序处于权限申请时或权限调用前的运行状态,避免应用程序的进程因权限回收而被关闭,从而可以减少应用程序再次启动的时间。
一种可能的设计中,用于触发该应用程序的权限撤销机制的事件包括该应用程序从前台切换至后台,且该应用程序的权限包括一次性授权的权限;或者,用于触发该应用程序的权限撤销机制的事件包括该应用程序从前台切换至后台,并在后台持续预设时长,且该应用程序的权限包括一次性授权的权限。
本实现方式,在由于应用程序从前台切换至后台,而导致回收应用程序的权限时,通过回退应用程序的状态,从而使得应用程序从后台切换至前台时,应用程序处于权限申请时或权限调用前的运行状态,避免应用程序的进程因权限回收而被关闭,可以减少应用程序再次启动的时间。
一种可能的设计中,用于触发该应用程序的权限撤销机制的事件包括该应用程序位于后台,设置应用位于前台,并且检测到用户对设置应用执行取消该应用程序的该权限的操作。
本实现方式,在由于响应用户对设置应用执行取消该应用程序的该权限的操作,而导致回收应用程序的权限时,通过回退应用程序的状态,从而使得应用程序从后台切换至前台时,应用程序处于权限申请时或权限调用前的运行状态,避免应用程序的进程因权限回收而被关闭,可以减少应用程序再次启动的时间。
一种可能的设计中,用于触发该应用程序的权限撤销机制的事件包括该应用程序所在的电子设备的屏幕由亮屏变为灭屏;或者,用于触发该应用程序的权限撤销机制的事件包括该应用程序所在的电子设备的屏幕变为锁定状态。
本实现方式,在由于电子设备的屏幕由亮屏变为灭屏或锁屏,而导致回收应用程序的权限时,通过回退应用程序的状态,从而使得应用程序在重新亮屏或解锁屏时,应用程序处于权限申请时或权限调用前的运行状态,避免应用程序的进程因权限回收而被关闭,可以减少应用程序再次启动的时间。
一种可能的设计中,该方法还可以包括:记录该应用程序的权限-进程关联调用栈信息,该权限-进程关联调用栈信息表示该应用程序在申请该权限时的进程节点上或调用该权限前的任意进程节点上的该应用程序的状态。
一种可能的设计中,该权限-进程关联调用栈信息包括该应用程序在申请该权限时的调用栈信息和权限类型标识信息,在申请该权限时的调用栈信息用于表示在申请该权限所在的进程节点上的应用程序的状态,权限类型标识信息用于标识该权限;或者,该权限-进程关联调用栈信息包括该应用程序在申请该权限至调用该权限之间任意一个或多个进程节点的调用栈信息和权限类型标识信息,在申请该权限至调用该权限之间任意一个或多个进程节点的调用栈信息用于表示在申请该权限至调用该权限之间任意一个或多个进程节点的应用程序的状态,权限类型标识信息用于标识该权限。
一种可能的设计中,该权限-进程关联调用栈信息还包括应用标识信息,应用标识信息用于标识该应用程序。
一种可能的设计中,该方法还可以包括:根据该权限的权限类型标识信息,在该权限-进程关联调用栈信息中,获取该应用程序在申请该权限时或调用该权限前的应用程序的状态。
一种可能的设计中,响应于该权限申请指令,授予该应用程序所申请的权限,可以包括:响应于该权限申请指令,显示弹窗,检测到用户作用于该弹窗的第一操作,该第一操作用于指示授予该应用程序所申请的权限。响应于该第一操作,授予该应用程序所申请的权限。
一种可能的设计中,授予该应用程序所申请的权限,可以包括:一次性授予该应用程序所申请的权限。
本实现方式,在回收应用程序的一次性权限时,可以将应用程序的状态回退至应用程序在权限申请时或权限调用前的状态,避免应用程序的进程因权限回收而被关闭,从而可以减少应用程序再次启动的时间,提升用户使用体验。
一种可能的设计中,该权限可以包括正常权限、签名权限或危险权限。
一种可能的设计中,该权限可以包括位置权限、麦克风权限、摄像头权限或传感器权限。
第二方面,本申请实施例提供一种应用程序的权限管理装置,该装置具有实现上述第一方面或第一方面任一种可能的设计的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块,例如,获取单元或模块,权限管理单元或模块。
第三方面,本申请实施例提供一种电子设备,该电子设备可以包括:一个或多个处理器;一个或多个存储器;其中,所述一个或多个存储器用于存储一个或多个程序;所述一个或多个处理器用于运行所述一个或多个程序,以实现如第一方面或第一方面任一种可能的设计所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,其特征在于,包括计算机程序,所述计算机程序在计算机上被执行时,使得所述计算机执行如第一方面或第一方面任一种可能的设计所述的方法。
第五方面,本申请实施例提供一种芯片,其特征在于,包括处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行如第一方面或第一方面任一种可能的设计所述的方法。
第六方面,本申请实施例提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面或第一方面任一种可能的设计所述的方法。
本申请实施例的应用程序的权限管理方法和电子设备,通过记录应用程序的权限-进程关联调用栈信息,该权限-进程关联调用栈信息可以包括应用程序在权限申请时或权限调用前的调用栈信息和权限类型标识信息,该调用栈信息用于表示在权限申请所在的进程节点上的应用程序的状态,或表示在权限申请至权限调用之间任意一个或多个进程节点的应用程序的状态。之后,在系统回收应用程序的权限时,系统可以基于该权限-进程关联调用栈信息,将应用程序的进程回退至应用程序在权限申请时所在的进程节点,从而使得应用程序处于权限申请时的运行状态,避免应用程序的进程因权限回收而被关闭,从而可以减少应用程序再次启动的时间,提升用户使用体验。或者,通过对应用程序的进程授予应用程序所申请的一次性权限,用户未主动关闭应用程序,对于前后台切换系统不会主动关闭应用程序的进程,可以避免用户未主动关闭应用程序,但应用程序的进程因应用程序的一次性权限回收而被关闭,从而可以减少应用程序再次启动的时间,提升用户使用体验。
图1为本申请实施例的一种电子设备的硬件结构示意图;
图2为本申请实施例的一种电子设备的软件结构示意图;
图3A为本申请实施例的一种应用场景的示意图;
图3B为本申请实施例的另一种应用场景的示意图;
图4为本申请实施例的一种应用程序的权限授予方法的流程图;
图5为本申请实施例的另一种应用程序的权限回收方法的流程图;
图6为本申请实施例的另一种应用程序的权限管理方法的流程图;
图7为本申请实施例的图3A所示场景所涉及的电子设备的界面示意图;
图8为本申请实施例的图3A所示场景所涉及的电子设备的界面示意图;
图9为本申请实施例的图3B所示场景所涉及的电子设备的界面示意图;
图10为本申请实施例的一种应用程序的权限管理装置的结构示意图;
图11为本申请实施例的一种电子设备的结构示意图。
本申请实施例涉及的术语“第一”、“第二”等仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
对于电子设备的应用程序的权限回收,通过关闭应用程序对应的进程的方式,会导致用户未主动关闭的应用程序的进程在权限回收时关闭。电子设备的系统的后台没有该应用程序的任何进程,用户经系统再次打开该应用程序时,需要冷启动该应用程序。与通过关闭应用程序对应的进程的方式实现权限回收不同,本申请实施例提供的应用程序的权限管理方法,可以实现对于用户未主动关闭的应用程序的进程,系统回收该应用程序的一个或多个已经授权的权限后,应用程序的进程仍然存在,可以减少应用程序再次启动的时间,提升用户使用体验。本申请实施例还提供一种应用程序的权限管理方法,可以对应用程序的进程授予应用程序所申请的一次性权限,用户未主动关闭应用程序,对于前后台切换系统不会主动关闭应用程序的进程,从而避免用户未主动关闭应用程序,但应用程序的进程因应用程序的一次性权限回收而被关闭,从而可以减少应用程序再次启动的时间,提升用户使用体验。
对于通过本申请实施例的应用程序的权限管理方法,提供应用程序的启动优化的具体解释说明,可以参见下述实施例的解释说明。
首先对本申请实施例中的部分用语进行解释说明,以便于理解本申请实施例的认证应用程序的方法。
应用程序:包括浏览器或者提供各种功能服务的应用程序(Application,APP)。例如,生活服务类的应用程序、即时通信类的应用程序、社交类的应用程序、音视频播放类的应用程序等。
应用标识信息:用于标识应用程序的标识信息。例如,应用程序的包名等。一个应用程序可以对应一个应用标识信息。
应用程序的权限:是应用程序对电子设备进行信息访问的申请。应用程序被授予相应权限后,可以对应用程序所在的电子设备进行与权限对应的操作。权限机制是电子设备的系统中一个重要的组成部分,用来保护系统安全和用户隐私。
以安卓系统为例,权限可以包括但不限于:正常权限(NORMAL),签名权限(SIGNATURE)或危险权限(DANGEROUS)。其中,正常权限(NORMAL):指的是应用程序需要访问的一些数据资源,但并不涉及到用户的隐私或者对其他应用程序无害。例如设置闹钟就是属于正常权限。系统在处理正常权限时并不会提示用户,而用户也没有办法取消这些正常权限。签名权限(SIGNATURE):指的是系统在安装时授予应用程序的权限,利用签名权限,两个签名相同的应用程序就可以进行安全的数据共享。危险权限(DANGEROUS):指的是直接触碰到用户隐私或者影响其他程序操作的权限,对于这一类的权限,系统会以弹窗的方式向用户进行问询,应用程序必须要经过用户的授权后才可以进行相应的行为。例如,危险权限可以是调用拨号权限、调用摄像头权限、调用读取短信权限、或调用读取通讯录权限等等。本申请实施例可以使用权限类型标识对不同的权限进行标识,例如,0000用于标识调用拨号权限,0001用于标识调用摄像头权限,0010用于标识调用读取地理位置权限等。
本申请实施例的电子设备,为一种具有系统(例如操作系统)的设备。电子设备包括一个或多个应用程序。本申请实施例的电子设备可以是手机(mobile phone)、平板电脑(Pad)、带无线收发功能的电脑、虚拟现实(Virtual Reality,VR)终端设备、增强现实(Augmented Reality,AR)终端设备、工业控制(industrial control)中的终端设备、辅助驾驶的终端设备、无人驾驶(self driving)中的终端设备、远程手术(remote medicalsurgery)中的终端设备、智能电网(smart grid)中的终端设备、运输安全(transportationsafety)中的终端设备、智慧城市(smart city)中的终端设备、智慧家庭(smart home)中的终端设备、智能手表、智能手环,智能眼镜,以及其他运动配件或可穿戴设备等等。例如,智慧家庭(smart home)中的终端设备可以是智能电视、智能音箱等智能家电。
下面说明本申请实施例可以应用的场景,图1示出了本申请实施例可以应用的一种可能的电子设备结构图。参阅图1所示,该电子设备100包括:通信单元101、处理器102、存储器103、显示单元104、输入单元105、音频电路106、传感器107、摄像头108,以及定位模块109等部件。下面结合图1对该电子设备100的各个构成部件进行具体的介绍。
通信单元101用于实现电子设备100与其他电子设备的数据通信。可选的,该通信单元101中可以包括无线保真(wireless fidelity,WiFi)模块1011和/或蓝牙(bluetooth)模块1012。
蓝牙无线技术和WiFi技术均属于短距离无线传输技术,该电子设备100通过WiFi模块1011可以连接接入点(access point,AP),从而实现数据网络的访问,以及通过该AP与连接该AP其他的电子设备或配件(如远端的摄像装置)通信。该电子设备100通过蓝牙模块1012直接与其他电子设备或配件建立连接。
该通信单元101中还可以包含射频(radio frequency,RF)电路。例如,当该电子设备100为智能手机时,该电子设备100可以通过该RF电路与建立无线连接,通过移动通信系统实现通话或数据网络的访问。
该电子设备100还可以包括通信接口,用于与其他设备实现物理连接。该通信接口可以与该其他电子设备的通信接口通过电缆连接,实现该电子设备100和其他电子设备之间的数据传输。
该存储器103可用于存储软件程序以及数据。该处理器102通过运行存储在该存储器103的软件程序以及数据,从而执行该电子设备100的各种功能应用以及数据处理。例如,该软件程序可以为运动健康程序、音视频播放程序等。
该存储器103可以主要包括存储程序区和存储数据区。其中,存储程序区可存储系统、各种应用程序等;存储数据区可存储用户输入或者该电子设备100在运行软件程序过程中创建的数据等。此外,该存储器103可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。例如,在本申请实施例中,运动健康程序、音视频播放程序等可以存储在存储程序区中。
该输入单元105可用于接收用户输入的字符信息以及信号。可选的,输入单元105可包括触控面板1051以及其他输入设备(例如功能键)。其中,该触控面板1051,也称为触摸屏,可收集用户在其上或附近的触摸操作,生成相应的触摸信息发送给处理器102,以使处理器102执行该触摸信息对应的指令。触控面板1051可以采用电阻式、电容式、红外线以及表面声波等多种类型实现。例如,在本申请实施例中,用户可以通过电子设备100的触控面板1051控制电子设备的应用程序。
该显示单元104用于呈现用户界面,实现人机交互。例如,该显示单元104可以显示由用户输入的信息,或提供给用户的信息,以及该电子设备100的各种菜单、各个APP、浏览器的界面等内容。
该显示单元104可以包括显示面板1041,所述显示面板1041可以采用液晶显示屏(liquid crystal display,LCD)、有机发光二极管(organic light-emitting diode,OLED)等形式来配置。
需要说明的是,该触控面板1051可覆盖该显示面板1041,虽然在图1中,该触控面板1051与该显示面板1041是作为两个独立的部件来实现该电子设备100的输入和输入功能,但是在本申请实施例中,可以将该触控面板1051与该显示面板1041集成(即触摸显示屏)而实现该电子设备100的输入和输出功能。
该处理器102是该电子设备100的控制中心,利用各种接口和线路连接各个部件,通过运行或执行存储在该存储器103内的软件程序和/或模块,以及调用存储在该存储器103内的数据,执行该电子设备100的各种功能和处理数据,从而实现基于该电子端设备100的多种业务。
可选的,该处理器102可包括一个或多个处理单元。该处理器102可集成应用处理器和调制解调处理器,其中,应用处理器主要处理系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到该处理器102中。
该音频电路106(包括扬声器1061,麦克风1062)可提供用户与该电子设备100之间的音频接口。音频电路106可将接收到的音频数据转换后的电信号,传输到该扬声器1061,由该扬声器1061转换为声音信号输出。另一方面,该麦克风1062将收集的声音信号转换为电信号,由该音频电路106接收后转换为音频数据,以进行传输或存储等进一步处理。
该电子设备100还可以包括一种或多种传感器107,比如光传感器、运动传感器、超声波传感器以及其他传感器。例如,该电子设备100可以根据该传感器107采集的用户运动数据,确定用户输入的控制指令,从而响应该控制指令。
该电子设备100内部还可以包括摄像头108,以采集图像。当然,该电子设备100中也可以不包含摄像头108。例如,该电子设备100可以为不包含摄像头的智能手表或智能手环。
可选的,该电子设备100中还可以包含定位模块109,该定位模块可以测量用户的地理位置数据。该定位模块109可以为全球定位系统(global position system,GPS)模块或北斗模块等,本申请实施例这里不做限定。
可以理解的,图1中示出的终端设备的结构并不构成对电子设备的限定,本申请实施例提供的电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
进一步地,电子设备100搭载的系统可以为鸿蒙或者其它系统,本申请实施例对此不作任何限制。
以搭载系统的电子设备100为例,如图2所示,电子设备100从逻辑上可划分为硬件层21、系统层41,以及应用层31。硬件层21包括如上所述的通信单元101、处理器102、存储器103、显示单元104、输入单元105、音频电路106、传感器107、摄像头108,以及定位模块109等硬件资源。应用层31包括一个或多个应用程序,应用程序可以为社交类应用、电子商务类应用、浏览器等任意类型的应用程序。系统层41作为硬件层21和应用层31之间的软件中间件,是管理和控制硬件与软件资源的计算机程序。
在一个实施例中,系统层41用于为应用层31中的应用程序提供各种基础的公共组件和服务,比如窗口管理、位置管理、权限管理等等。例如,系统层41中的权限管理系统可以通过本申请实施例的应用程序的权限管理方法管理应用层31中的各个应用程序的权限,其具体解释说明可以参见下述实施例。需要说明的是,本申请实施例所涉及的权限管理系统可以是系统层中的逻辑功能模块。例如,权限管理模块。该权限管理模块可以理解为操作系统提供的能力接口,举例而言,其具体可以是框架层应用程序编程接口(ApplicationProgramming Interface,API)。
以上描述的系统层41的各个组件的功能均可以由处理器102执行存储器103中存储的程序来实现。
上述电子设备可以执行本申请实施例的应用程序的权限管理方法,可以减少应用程序再次启动的时间。
一种示例,图3A示出了本申请实施例可以应用的一种场景的示意图。参阅图3A所示,该应用场景包括电子设备31,电子设备31上有应用程序1和应用程序2,例如,应用程序1为即时通信应用,应用程序2为视频应用。电子设备31上还有系统3,系统3可以为上述任意一种系统,例如,系统3可以为安卓系统。系统3可以通过本申请实施例的应用程序的权限管理方法对应用程序1和应用程序2的权限进行管理。一种示例,以系统3对应用程序1的权限进行管理为例,应用程序1位于系统3的前台,用户可以使用应用程序1提供的相关功能服务,例如,聊天通信服务。系统3一次性授予应用程序1的调用摄像头权限,即系统3允许应用程序1在一次操作中使用摄像头或访问摄像头所获取的数据。系统3的前台由应用程序1切换为应用程序2,换言之,应用程序1位于系统3的后台。由于应用程序1的调用摄像头权限为一次性授予,所以在满足预设条件时,系统3会回收应用程序1的调用摄像头权限。该预设条件可以是应用程序1位于后台的时长大于预设阈值等。本申请实施例中系统3可以通过下述实施例提供的应用程序的权限管理方法回收应用程序1的调用摄像头权限,以在回收权限的同时,保留应用程序的进程,进而可以减少应用程序再次启动的时间。例如,减少系统3的前台由应用程序2切换为应用程序1的时间,提升用户访问应用程序1和应用程序2的效率。
图3B示出了本申请实施例可以应用的另一种场景的示意图。参阅图3B所示,该应用场景包括电子设备31,电子设备31上有应用程序1和设置应用4,例如,应用程序1为即时通信应用。电子设备31上还有系统3,系统3可以为上述任意一种系统,例如,系统3可以为安卓系统。系统3可以通过本申请实施例的应用程序的权限管理方法对应用程序1的权限进行管理。一种示例,应用程序1位于系统3的前台,用户可以使用应用程序1提供的相关功能服务,例如,聊天通信服务。系统3永久性授予应用程序1的调用摄像头权限,即系统3始终允许应用程序1使用摄像头或访问摄像头所获取的数据。系统3的前台由应用程序1切换为设置应用4,换言之,应用程序1位于系统3的后台,设置应用4位于系统的前台。用户对设置应用4执行取消应用程序1的调用摄像头权限的操作,系统3基于用户的操作,回收应用程序1的调用摄像头权限。本申请实施例中系统3可以通过下述实施例提供的应用程序的权限管理方法回收应用程序1的调用摄像头权限,以在回收权限的同时,保留应用程序的进程,进而可以减少应用程序再次启动的时间。例如,减少系统3的前台由设置应用4切换为应用程序1的时间,提升用户访问应用程序1的效率。
需要说明的是,本文所涉及的系统3具体指用于执行本申请实施例的权限管理方法的权限管理模块。以安卓系统为例,该权限管理模块可以是框架层API接口。
下面采用具体的实施例对本申请实施例的应用程序的权限管理方法进行解释说明。
方式一,本申请实施例提供一种应用程序的权限管理方法,该权限管理方法可以包括权限授予方法和权限回收方法。权限授予方法和权限回收方法可以适用于上述图3A或图3B所示的应用场景。换言之,权限授予方法和权限回收方法适用于一次性授权的权限或永久性授权的权限。
权限授予方法
图4为本申请实施例的一种应用程序的权限授予方法的流程图,如图4所示,本实施例以电子设备31的系统3授予应用程序1的一个权限为例进行举例说明。本实施例的方法可以包括:
步骤401、应用程序1向系统3调用权限申请指令,该权限申请指令用于申请授予一个权限。
该权限可以是上述任意一种权限,例如,调用拨号权限、调用摄像头权限、调用麦克风权限、调用传感器(例如计步器)权限、调用位置权限等。
在应用程序1安装完成首次启动时,应用程序1向系统3调用权限申请指令。或者,在应用程序1的前一次启动运行过程中,应用程序1的一个权限被一次性授权,在本次启动应用程序1时,应用程序1向系统3调用权限申请指令。或者,在应用程序1运行过程中检测到用户的第一操作时,应用程序1向系统3调用权限申请指令。
该权限申请指令可以携带应用程序1的应用标识信息和该权限的权限类型标识信息。应用标识信息可以用于区分不同的应用程序,其具体解释说明可以参见前述部分用语的解释说明。权限类型标识信息可以用于区分不同的权限,其具体解释说明可以参见前述部分用语的解释说明。
其中,第一操作可以是用于启动使用应用程序1的部分功能的操作,而该部分功能需要系统3授予权限才能使用。例如,应用程序1为即时通信应用,第一操作可以是用户作用在应用程序1的拍摄按钮上的操作,该拍摄按钮用于启动使用应用程序1的拍摄功能,而该拍摄功能需要系统3授予应用程序1调用摄像头权限。
需要说明的是,在步骤401中,系统3还可以记录应用程序1的权限-进程关联调用栈信息。一种可实现方式,权限-进程关联调用栈信息可以包括应用程序1在权限申请时的调用栈信息和权限类型标识信息。这里的应用程序1在权限申请时的调用栈信息指的是,应用程序1在申请上述权限申请指令所对应的权限时的调用栈信息。该调用栈信息用于表示在权限申请所在的进程节点上的应用程序的状态,例如,界面状态、后台服务状态、存储状态、接收消息状态等。该存储状态可以是内存中数据的状态。另一种可实现方式,权限-进程关联调用栈信息可以包括应用程序1在权限申请至权限调用之间任意一个或多个进程节点的调用栈信息和权限类型标识信息,权限申请所在的进程节点可以是系统3接收到上述权限申请指令时的进程节点,权限调用所在的进程节点可以是应用程序1调用上述权限类型标识信息对应的权限时的进程节点。举例而言,以安卓系统为例,调用栈信息可以包括各个组件的状态信息。各个组件可以包括活动(Activity)、服务(Service)、广播接收器(BroadcastReceiver)或内容提供商(ContentProvider)中的一项或多项。
可选的,在一些实施例中,权限-进程关联调用栈信息还可以包括权限申请标志位。该权限申请标志位用于标识应用程序1在相应的进程节点上申请权限类型标识信息对应的权限。
例如,在应用程序1安装完成首次启动时,应用程序1向系统3调用权限申请指令,系统3可以记录应用程序1的权限-进程关联调用栈信息为,进程节点3:权限类型标识用于表示地理位置申请,活动(Activity)的状态信息用于表示窗口显示主界面,该活动(Activity)的状态信息对应权限申请标志位。
当然可以理解的,该权限-进程关联调用栈信息还可以包括应用程序1在其他进程节点的调用栈信息。该其他进程节点的调用栈信息用于应用程序1的进程回退。该其他进程节点的调用栈信息用于表示一个或多个进程节点上的应用程序的状态,例如,界面状态、后台服务状态、接收消息状态等。
例如,在应用程序1运行过程中检测到用户的第一操作时,应用程序1向系统3调用权限申请指令。系统3可以记录应用程序1的权限-进程关联调用栈信息为,进程节点3:权限类型标识用于表示地理位置申请,活动(Activity)的状态信息用于表示窗口显示跳转后的功能界面(第一操作触发界面切换),该活动(Activity)的状态信息对应权限申请标志位。在记录进程节点3的调用栈信息之前,系统3还可以记录进程节点1和进程节点2的调用栈信息。例如,进程节点1:活动(Activity)的状态信息用于表示窗口显示主界面(用户触发应用程序1启动)。进程节点2:服务(Service)的状态信息用于表示启动服务A。
在一些实施例中,上述示例对应的权限-进程关联调用栈信息可以是如下表1所示形式。
表1权限-进程关联调用栈信息示意表
步骤402、系统3显示弹窗,系统3检测到用户作用于弹窗的第二操作,该第二操作用于指示授予应用程序1所申请的权限。
该弹窗可以提示用户是否允许应用程序1访问或使用上述权限所对应的信息。例如,权限为调用地理位置权限,该弹窗可以提示用户是否允许应用程序1使用地理位置信息。该弹窗还可以显示多个选择按钮,例如,三个选择按钮,一个选择按钮对应仅本次允许,一个选择按钮对应始终允许,另一个选择按键对应拒绝。当用户点击仅本次允许或始终允许对应的选择按钮时,系统3检测到用户作用于弹窗的第二操作。当用户点击拒绝对应的选择按钮时,系统3检测到用户作用于弹窗的第三操作。该第三操作用于指示拒绝授予应用程序1所申请的权限。
步骤403、系统3响应于该第二操作,授予应用程序1所申请的权限。
系统3响应于该第二操作授予应用程序1所申请的权限,之后,应用程序1可以对电子设备31进行与权限对应的操作,例如,应用程序1可以使用电子设备31的地理位置信息。
系统3响应于该第三操作拒绝授予应用程序1所申请的权限,之后,应用程序1无法进行与权限对应的操作,例如,应用程序1无法使用电子设备31的地理位置信息。
本实施例,在应用程序1向系统3调用权限申请指令时,系统3记录应用程序1的权限-进程关联调用栈信息,该权限-进程关联调用栈信息可以包括应用程序1在权限申请时的调用栈信息和权限类型标识信息,该调用栈信息用于表示在权限申请所在的进程节点上的应用程序的状态。或者,该权限-进程关联调用栈信息可以包括应用程序1在权限申请至权限调用之间任意一个或多个进程节点的调用栈信息和权限类型标识信息,该调用栈信息用于表示在权限申请至权限调用之间任意一个或多个进程节点上的应用程序的状态。之后,在系统3回收应用程序1的权限时,系统3可以基于该权限-进程关联调用栈信息,将应用程序1的进程回退至应用程序1在权限申请时或权限调用前所在的进程节点,从而使得应用程序处于权限申请时或权限调用前的运行状态,避免应用程序1的进程因权限回收而被关闭,从而可以减少应用程序再次启动的时间,提升用户使用体验。
权限回收方法
图5为本申请实施例的一种应用程序的权限回收方法的流程图,如图5所示,本实施例以电子设备31的系统3回收应用程序1的权限为例进行举例说明。本实施例的方法可以包括:
步骤501、当系统3监测到用于触发应用程序1的权限撤销机制的事件时,系统3根据权限-进程关联调用栈信息确定进程回退位置。
其中,权限-进程关联调用栈信息的具体解释说明可以参见步骤401的具体解释说明。
一种可实现方式,用于触发应用程序1的权限撤销机制的事件可以是应用程序1从前台切换至后台,且应用程序1的已授予权限包括一次性授权的权限。或者,用于触发应用程序1的权限撤销机制的事件可以是应用程序1从前台切换至后台,并在后台持续预设时长(例如,60s),且应用程序1的已授予权限包括一次性授权的权限。当系统3监测到该事件时,系统3根据权限-进程关联调用栈信息确定进程回退位置。
另一种可实现方式,用于触发应用程序1的权限撤销机制的事件可以是电子设备31由亮屏变为灭屏,或者变为锁屏。当系统3监测到该事件时,系统3根据权限-进程关联调用栈信息确定进程回退位置。
示例性的,应用程序1的已授予权限包括一个一次性授权的权限,在系统3监测到上述两种可实现方式中任意一种事件时,系统3根据该一次性授权的权限的权限类型标识信息,在权限-进程关联调用栈信息中查该一次性授权的权限在权限申请时或权限调用前的进程节点,将该进程节点所在位置作为进程回退位置。
示例性的,应用程序1的已授予权限包括多个一次性授权的权限,在系统3监测到上述两种可实现方式中任意一种事件时,系统3根据各个一次性授权的权限的权限类型标识信息,在权限-进程关联调用栈信息中查各个一次性授权的权限在权限申请时或权限调用前的进程节点,在多个进程节点中选取最先申请权限的进程节点所在位置作为进程回退位置。
另一种可实现方式,用于触发应用程序1的权限撤销机制的事件可以是应用程序1位于系统3的后台,设置应用4位于系统的前台,并且检测到用户对设置应用4执行取消应用程序1的一个或多个权限的操作。当系统3监测到该事件时,系统3根据权限-进程关联调用栈信息确定进程回退位置。
当检测到用户对设置应用4执行取消应用程序1的一个权限的操作时,系统3根据该权限的权限类型标识信息,在权限-进程关联调用栈信息中查该权限在权限申请时或权限调用前的进程节点,将该进程节点所在位置作为进程回退位置。
当检测到用户对设置应用4执行取消应用程序1的多个权限的操作时,系统3根据各个权限的权限类型标识信息,在权限-进程关联调用栈信息中查各个权限在权限申请时或权限调用前的进程节点,在多个进程节点中选取最先申请权限的进程节点所在位置作为进程回退位置。
步骤502、系统3回收应用程序1的权限。
系统3可以清理应用程序1的权限对应的句柄操作。以权限为调用摄像头权限为例,系统3可以终止应用程序1的获取摄像头数据的服务或界面。
步骤503、系统3将应用程序1的进程状态回退至进程回退位置对应的应用程序的状态。
需要说明的是,上述步骤502和步骤503的执行顺序不以序号大小作为限制,换言之,可以先执行步骤503再执行步骤502,也可以并行执行步骤502和步骤503。
由于权限-进程关联调用栈信息包括应用程序1在权限申请时或权限调用前的调用栈信息、权限类型标识信息和权限申请标志位,该调用栈信息用于表示在权限申请所在的进程节点上的应用程序的状态,所以,系统3根据该进程回退位置,可以获取在权限申请所在的进程节点上的应用程序的状态,将应用程序1的进程状态回退至权限申请或权限使用前的应用程序的状态,从而使得在应用程序1从后台切换至前台时,应用程序1处于权限申请或权限使用前的应用程序的状态。
本实施例,当系统3监测到用于触发应用程序1的权限撤销机制的事件时,系统3根据权限-进程关联调用栈信息确定进程回退位置,系统3回收应用程序1的权限,系统3将应用程序1的进程状态回退至进程回退位置对应的应用程序的状态,从而使得应用程序处于权限申请时或权限调用前的运行状态,避免应用程序1的进程因权限回收而被关闭,从而可以减少应用程序再次启动的时间,提升用户使用体验。通过对应用程序的权限进行及时回收,可以保护用户隐私和数据安全。
方式二,本申请实施例还提供另一种应用程序的权限管理方法。与上述方式一不同,本实现方式的权限管理方法可以适用于上述图3A所示的应用场景。换言之,方式二的权限管理方法适用于一次性授权的权限。
图6为本申请实施例的另一种应用程序的权限管理方法的流程图,如图6所示,本实施例以电子设备31的系统3管理应用程序1的一个权限为例进行举例说明。本实施例的方法可以包括:
步骤601、应用程序1向系统3调用权限申请指令,该权限申请指令用于申请授予一个权限。
该权限可以是上述任意一种权限,例如,调用拨号权限、调用摄像头权限等。
在应用程序1安装完成首次启动时,应用程序1向系统3调用权限申请指令。或者,在应用程序1的前一次启动运行过程中,应用程序1的一个权限被一次性授权,在本次启动应用程序1时,应用程序1向系统3调用权限申请指令。或者,在应用程序1运行过程中检测到用户的第一操作时,应用程序1向系统3调用权限申请指令。
该权限申请指令可以携带应用程序1的应用标识信息和该权限的权限类型标识信息。应用标识信息可以用于区分不同的应用程序,其具体解释说明可以参见前述部分用语的解释说明。权限类型标识信息可以用于区分不同的权限,其具体解释说明可以参见前述部分用语的解释说明。
其中,第一操作可以是用于启动使用应用程序1的部分功能的操作,而该部分功能需要系统3授予权限才能使用。例如,应用程序1为即时通信应用,第一操作可以是用户作用在应用程序1的拍摄按钮上的操作,该拍摄按钮用于启动使用应用程序1的拍摄功能,而该拍摄功能需要系统3授予应用程序1调用摄像头权限。
步骤602、系统3显示弹窗,系统3检测到用户作用于弹窗的第四操作,该第四操作用于指示一次性授予应用程序1所申请的权限。
该弹窗可以提示用户是否允许应用程序1访问或使用上述权限所对应的信息。例如,权限为调用地理位置权限,该弹窗可以提示用户是否允许应用程序1使用地理位置信息。该弹窗还可以显示多个选择按钮,例如,三个选择按钮,一个选择按钮对应仅本次允许,一个选择按钮对应始终允许,另一个选择按键对应拒绝。当用户点击仅本次允许对应的选择按钮时,系统3检测到用户作用于弹窗的第四操作。
步骤603、系统3响应于该第四操作,对应用程序1的进程授予应用程序1所申请的权限。
系统3响应于该第四操作对应用程序1的进程授予应用程序1所申请的权限。换言之,应用程序1所申请的权限在该进程运行过程中始终有效。应用程序1可以对电子设备31进行与权限对应的操作,例如,应用程序1可以使用电子设备31的地理位置信息。
举例而言,系统3对应用程序1的进程授予权限1,应用程序1由前台切换至后台,或后台切换至前台,即用户未主动关闭应用程序1,对于前后台切换系统不会主动关闭应用程序1的进程。应用程序1的进程未关闭,该权限1始终有效。
本实施例,在应用程序1向系统3调用权限申请指令时,系统3显示弹窗,系统3检测到用户作用于弹窗的第四操作,该第四操作用于指示一次性授予应用程序1所申请的权限,系统3响应于该第四操作,对应用程序1的进程授予应用程序1所申请的权限。用户未主动关闭应用程序1,对于前后台切换系统不会主动关闭应用程序1的进程,而应用程序1的进程未关闭,该权限1始终有效,从而避免用户未主动关闭应用程序1,但应用程序1的进程因应用程序1的一次性权限回收而被关闭,从而可以减少应用程序再次启动的时间,提升用户使用体验。
下面采用几个具体应用场景示例,对本申请实施例的应用程序的权限管理方法进行解释说明。
图7为本申请实施例的图3A所示场景所涉及的电子设备的界面示意图。本实施例的应用程序1为拍照应用。作为一种示例而非限定,如图7所示,电子设备的屏幕显示系统显示了当前一种可能的界面内容,该界面内容为电子设备的应用程序1的主界面701。该主界面701可以显示一个功能按钮,例如,拍照按钮。应理解,主界面701还可以包括其他更多的功能按钮或图形控件,本申请实施例对此不作限定。
用户执行图7中的(a)图所示的对拍照按钮的点击操作,响应于该点击操作,电子设备的界面切换至拍照功能界面702。上述实施例的第一操作可以是这里的点击操作。该点击操作用于启动使用应用程序1的拍照功能,而该拍照功能需要电子设备的系统3授予应用程序1调用摄像头权限才能使用。应用程序1可以通过上述步骤401向系统3调用权限申请指令,该权限申请指令用于申请授予调用摄像头权限。系统3可以通过上述步骤402显示弹窗。该弹窗可以如图7中的(b)图所示的弹窗,该弹窗可以提示用户是否允许应用程序1拍照。该弹窗还可以显示三个选择按钮,一个选择按钮对应仅本次允许,一个选择按钮对应始终允许,另一个选择按键对应拒绝。
用户执行图7中的(b)图所示的对仅本次允许的选择按钮的点击操作,响应于该点击操作,系统3通过上述步骤403授予应用程序1的调用摄像头权限,电子设备的界面进入拍照功能界面703。在拍照功能界面703中,包括拍照内容预览区域7031和拍摄照片按钮7032。应理解,拍照功能界面703还可以包括其他更多或更少的显示内容,本申请实施例对此不作限定。之后,用户操作电子设备将应用程序1从前台切换至后台,在前台显示应用程序2的功能界面704。电子设备的系统3可以通过图5所示实施例将应用程序1的进程状态回退至进程回退位置对应的应用程序的状态,即回退至图7中的(b)图所示状态。之后,用户操作电子设备将应用程序1从后台切换至前台,在前台显示应用程序1的拍照功能界面705,该拍照功能界面705与拍照功能界面702相同。通过图4和图5所示实施例的权限管理方法可以避免应用程序1的进程因权限回收而被关闭,从而可以减少应用程序1再次启动的时间,提升用户使用体验。通过对应用程序1的权限进行及时回收,可以保护用户隐私和数据安全。
图8为本申请实施例的图3A所示场景所涉及的电子设备的界面示意图。本实施例的应用程序1为拍照应用。作为一种示例而非限定,如图8所示,电子设备的屏幕显示系统显示了当前一种可能的界面内容,该界面内容为电子设备的应用程序1的主界面801。该主界面801可以显示一个功能按钮,例如,拍照按钮。应理解,主界面801还可以包括其他更多的功能按钮或图形控件,本申请实施例对此不作限定。
用户执行图8中的(a)图所示的对拍照按钮的点击操作,响应于该点击操作,电子设备的界面切换至拍照功能界面802。上述实施例的第一操作可以是这里的点击操作。该点击操作用于启动使用应用程序1的拍照功能,而该拍照功能需要电子设备的系统3授予应用程序1调用摄像头权限才能使用。应用程序1可以通过上述步骤601向系统3调用权限申请指令,该权限申请指令用于申请授予调用摄像头权限。系统3可以通过上述步骤602显示弹窗。该弹窗可以如图8中的(b)图所示的弹窗,该弹窗可以提示用户是否允许应用程序1拍照。该弹窗还可以显示三个选择按钮,一个选择按钮对应仅本次允许,一个选择按钮对应始终允许,另一个选择按键对应拒绝。
用户执行图8中的(b)图所示的对仅本次允许的选择按钮的点击操作,响应于该点击操作,系统3通过上述步骤603对应用程序1的进程授予调用摄像头权限,电子设备的界面进入拍照功能界面803。在拍照功能界面803中,包括拍照内容预览区域8031和拍摄照片按钮8032。应理解,拍照功能界面803还可以包括其他更多或更少的显示内容,本申请实施例对此不作限定。之后,用户操作电子设备将应用程序1从前台切换至后台,在前台显示应用程序2的功能界面804。用户未主动关闭应用程序1,对于前后台切换系统不会主动关闭应用程序1的进程。应用程序1的进程未关闭,该调用摄像头权限始终有效。之后,用户操作电子设备将应用程序1从后台切换至前台,在前台显示应用程序1的拍照功能界面805,该拍照功能界面805与拍照功能界面803相同。通过图6所示实施例的权限管理方法可以避免用户未主动关闭应用程序1,但应用程序1的进程因应用程序1的一次性权限回收而被关闭,从而可以减少应用程序再次启动的时间,提升用户使用体验。
图9为本申请实施例的图3B所示场景所涉及的电子设备的界面示意图。本实施例的应用程序1为拍照应用。作为一种示例而非限定,如图9所示,电子设备的屏幕显示系统显示了当前一种可能的界面内容,该界面内容为电子设备的应用程序1的主界面901。该主界面901可以显示一个功能按钮,例如,拍照按钮。应理解,主界面901还可以包括其他更多的功能按钮或图形控件,本申请实施例对此不作限定。
用户执行图9中的(a)图所示的对拍照按钮的点击操作,响应于该点击操作,电子设备的界面切换至拍照功能界面902。上述实施例的第一操作可以是这里的点击操作。该点击操作用于启动使用应用程序1的拍照功能,而该拍照功能需要电子设备的系统3授予应用程序1调用摄像头权限才能使用。应用程序1可以通过上述步骤401向系统3调用权限申请指令,该权限申请指令用于申请授予调用摄像头权限。系统3可以通过上述步骤402显示弹窗。该弹窗可以如图9中的(b)图所示的弹窗,该弹窗可以提示用户是否允许应用程序1拍照。该弹窗还可以显示三个选择按钮,一个选择按钮对应仅本次允许,一个选择按钮对应始终允许,另一个选择按键对应拒绝。
用户执行图9中的(b)图所示的对始终允许的选择按钮的点击操作,响应于该点击操作,系统3通过上述步骤403授予应用程序1的调用摄像头权限,电子设备的界面进入拍照功能界面903。在拍照功能界面903中,包括拍照内容预览区域9031和拍摄照片按钮9032。应理解,拍照功能界面903还可以包括其他更多或更少的显示内容,本申请实施例对此不作限定。之后,用户操作电子设备将应用程序1从前台切换至后台,在前台显示设置应用4的权限设置功能界面904。权限设置功能界面904包括应用程序1的调用摄像头权限的允许按钮9041和禁止按钮9042。
用户执行图9中的(d)图所示的对禁止按钮9042的点击操作,响应于该点击操作,系统3通过上述步骤501至步骤503将应用程序1的进程状态回退至进程回退位置对应的应用程序的状态。即回退至图9中的(b)图所示状态。之后,用户操作电子设备将应用程序1从后台切换至前台,在前台显示应用程序1的拍照功能界面905,该拍照功能界面905与拍照功能界面902相同。通过图4和图5所示实施例的权限管理方法可以避免应用程序1的进程因权限回收而被关闭,从而可以减少应用程序1再次启动的时间,提升用户使用体验。通过对应用程序1的权限进行及时回收,可以保护用户隐私和数据安全。
图10为本申请实施例的一种应用程序的权限管理装置的结果示意图。如图10所示,该装置可以应用于电子设备(如上述电子设备31),该装置可以包括:获取模块111和权限管理模块112。
获取模块111,用于获取应用程序的权限申请指令,该权限申请指令用于申请授予该应用程序的权限。权限管理模块112,用于响应于该权限申请指令,授予该应用程序所申请的权限。该权限管理模块112,还用于当监测到用于触发该应用程序的权限撤销机制的事件时,回收该应用程序的该权限,该应用程序的状态回退至该应用程序在申请该权限时或调用该权限前的该应用程序的状态。
在一些实施例中,该应用程序的状态包括该应用程序的界面状态、后台服务状态、存储状态或接收消息状态中的一项或多项。
在一些实施例中,该用于触发该应用程序的权限撤销机制的事件包括该应用程序从前台切换至后台,且该应用程序的权限包括一次性授权的权限;或者,该用于触发该应用程序的权限撤销机制的事件包括该应用程序从前台切换至后台,并在后台持续预设时长,且该应用程序的权限包括一次性授权的权限。
在一些实施例中,该用于触发该应用程序的权限撤销机制的事件包括该应用程序位于后台,设置应用位于前台,并且检测到用户对该设置应用执行取消该应用程序的该权限的操作。
在一些实施例中,该用于触发该应用程序的权限撤销机制的事件包括该应用程序所在的电子设备的屏幕由亮屏变为灭屏;或者,该用于触发该应用程序的权限撤销机制的事件包括该应用程序所在的电子设备的屏幕变为锁定状态。
在一些实施例中,该权限管理模块112还用于:记录该应用程序的权限-进程关联调用栈信息,该权限-进程关联调用栈信息表示该应用程序在申请该权限时的进程节点上或调用该权限前的任意进程节点上的该应用程序的状态。
在一些实施例中,该权限-进程关联调用栈信息包括该应用程序在申请该权限时的调用栈信息和权限类型标识信息,该在申请该权限时的调用栈信息用于表示在申请该权限所在的进程节点上的该应用程序的状态,该权限类型标识信息用于标识该权限;或者,该权限-进程关联调用栈信息包括该应用程序在申请该权限至调用该权限之间任意一个或多个进程节点的调用栈信息和权限类型标识信息,该在申请该权限至调用该权限之间任意一个或多个进程节点的调用栈信息用于表示在申请该权限至调用该权限之间任意一个或多个进程节点的该应用程序的状态,该权限类型标识信息用于标识该权限。
在一些实施例中,该权限-进程关联调用栈信息还包括应用标识信息,该应用标识信息用于标识该应用程序。
在一些实施例中,该权限管理模块112还用于:根据该权限的权限类型标识信息,在该权限-进程关联调用栈信息中,获取该应用程序在申请该权限时或调用该权限前的该应用程序的状态。
在一些实施例中,该权限管理模块112用于:响应于该权限申请指令,显示弹窗,检测到用户作用于该弹窗的第一操作,该第一操作用于指示授予该应用程序所申请的权限。响应于该第一操作,授予该应用程序所申请的权限。
在一些实施例中,该权限管理模块112用于:一次性授予该应用程序所申请的权限。
在一些实施例中,该权限包括正常权限、签名权限或危险权限。
在一些实施例中,该权限包括位置权限、麦克风权限、摄像头权限或传感器权限。
本申请实施例另一些实施例还提供了一种电子设备,用于执行以上各方法实施例中电子设备的方法。如图11所示,该电子设备可以包括:显示屏1101、一个或多个处理器1102;一个或多个存储器1103;上述各器件可以通过一个或多个通信总线1105连接。其中上述存储器1103中存储一个或多个计算机程序1104,一个或多个处理器1102用于执行一个或多个计算机程序1104,该一个或多个计算机程序1104包括指令,上述指令可以用于执行上述方法实施例中电子设备执行的各个步骤。该电子设备可以是上述任一形式的电子设备,例如,智能手机、智能手表等。
当然,图11所示的电子设备还可以包含如音频模块等其他器件,本申请实施例对此不做任何限制。当其包括其他器件时,具体可以为图2所示的电子设备。
本申请实施例的电子设备可以用于执行上述图4至图6所示任一方法实施例中电子设备的步骤,其技术原理和技术效果可以参见上述方法实施例的解释说明,此处不再赘述。
本申请实施例另一些实施例还提供一种计算机存储介质,该计算机存储介质可包括计算机指令,当该计算机指令在电子设备上运行时,使得该电子设备执行上述方法实施例中电子设备执行的各个步骤。
本申请实施例另一些实施例还提供一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得该计算机执行上述方法实施例中电子设备执行的各个步骤。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上各实施例中提及的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。处理器可以是通用处理器、数字信号处理器(digital signalprocessor,DSP)、特定应用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。本申请实施例公开的方法的步骤可以直接体现为硬件编码处理器执行完成,或者用编码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
上述各实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
本文发布于:2023-04-13 07:52:12,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/1/86357.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |