买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】设置自启动权限的方法、装置及存储介质_北京小米移动软件有限公司_201711049443.X 

申请/专利权人:北京小米移动软件有限公司

申请日:2017-10-31

公开(公告)日:2021-07-23

公开(公告)号:CN107704295B

主分类号:G06F9/445(20180101)

分类号:G06F9/445(20180101)

优先权:

专利状态码:有效-授权

法律状态:2021.07.23#授权;2018.03.16#实质审查的生效;2018.02.16#公开

摘要:本公开是关于一种设置自启动权限的方法、装置及存储介质,涉及终端技术领域,该方法包括:当检测到目标应用需要设置自启动权限时,从目标应用中获取目标应用的应用标识、应用包名称和目标状态,目标状态是指目标应用将自启动权限期望设置的状态,目标状态为开启状态或关闭状态;基于从目标应用中获取的应用标识和应用包名称,将目标应用的自启动权限的状态设置为目标状态。本公开实施例可以通过从目标应用中自动获取该目标应用的应用标识、应用包名称和目标状态来自动设置该目标应用的自启动权限,无需用户通过复杂的手动操作来对应用的自启动权限进行设置,简化了操作,使得自启动权限的设置更加便捷。

主权项:1.一种设置自启动权限的方法,其特征在于,所述方法包括:当检测到目标应用需要设置自启动权限时,从所述目标应用中获取所述目标应用的应用标识、应用包名称和目标状态,所述应用标识是终端为所述目标应用分配的用来唯一标识所述目标应用的信息,所述目标状态是指所述目标应用将所述自启动权限期望设置的状态,所述目标状态为开启状态或关闭状态;从所述目标应用中获取所述目标应用的签名信息;基于所述目标应用的应用包名称,通过第二指定函数获取存储的包括有所述目标应用的应用标识和签名信息的应用信息;当从所述目标应用中获取的签名信息和所述应用信息中包括的签名信息相同,且从所述目标应用中获取的应用标识和所述应用信息包括的应用标识相同时,确定所述目标应用验证为合法,基于从所述目标应用中获取的所述应用标识和所述应用包名称,将所述目标应用的自启动权限的状态设置为所述目标状态。

全文数据:设置自启动权限的方法、装置及存储介质技术领域[0001]本公开涉及终端技术领域,尤其涉及一种设置自启动权限的方法、装置及存储介质。背景技术[0002]近年来,随着移动互联网技术的发展,终端中安装的应用的功能越来越强大。其中,很多应用都会申请开启自启动权限。当应用具有自启动权限时,即允许该应用在终端开机时自动启动,并且,在终端待机的过程中,该应用可以随时被其他应用唤醒,且不受清理应用进程操作的影响,将持续在后台运行。[0003]相关技术中,当设置应用的自启动权限时,用户可以通过终端的设置页面进入该应用的设置页面,并点击该应用的设置页面中的权限管理选项。当终端检测到该权限管理选项被点击之后,可以显示包括自启动权限在内的多种权限选项,此时,用户可以手动将该应用的自启动权限设置为开启或关闭。发明内容[0004]为克服相关技术中用户通过手动操作设置应用的自启动权限时操作繁琐的问题,本公开提供一种设置自启动权限的方法、装置及计算机可读存储介质。[0005]根据本公开实施例的第一方面,提供一种设置自启动权限的方法,所述方法包括:[0006]当检测到目标应用需要设置自启动权限时,从所述目标应用中获取所述目标应用的应用标识、应用包名称和目标状态,所述目标状态是指所述目标应用将所述自启动权限期望设置的状态,所述目标状态为开启状态或关闭状态;[0007]基于从所述目标应用中获取的应用标识和所述应用包名称,将所述目标应用的自启动权限的状态设置为所述目标状态。[0008]可选地,所述当检测到目标应用需要设置自启动权限时,从所述目标应用中获取目标应用的应用标识、应用包名称和目标状态,包括:[0009]当检测到所述第三方应用对所述目标应用的调用操作,且所述目标应用的自启动权限的状态不为开启状态时,确定所述目标应用需要设置自启动权限;[0010]检测是否接收到所述目标应用的应用包名称和所述目标状态,所述应用包名称和所述目标状态是所述目标应用在根据所述调用操作自启动失败之后发送的;[0011]当接收到所述目标应用的应用包名称和所述目标状态时,通过第一指定函数从所述目标应用中获取所述目标应用的应用标识。[0012]可选地,所述当检测到目标应用需要设置自启动权限时,从所述目标应用中获取所述目标应用的应用标识、应用包名称和目标状态,包括:[0013]当接收到自启动权限设置请求时,确定检测到所述目标应用需要设置自启动权限,所述自启动权限设置请求中携带所述目标应用的应用包名称和所述目标状态;[0014]获取所述自启动权限设置请求中携带的应用包名称和目标状态,并通过第一指定函数从所述目标应用中获取所述目标应用的应用标识。[0015]可选地,所述方法还包括:[0016]验证所述目标应用的合法性;[0017]当所述目标应用验证为合法,执行所述基于从所述目标应用中获取的应用标识和所述应用包名称,将所述目标应用的自启动权限的状态设置为所述目标状态的步骤。[0018]可选地,所述验证所述目标应用的合法性,包括:[0019]从所述目标应用中获取所述目标应用的签名信息;[0020]基于所述目标应用的应用包名称,通过第二指定函数获取存储的包括有所述目标应用的应用标识和签名信息的应用信息;[0021]当从所述目标应用中获取的签名信息和所述应用信息中包括的签名信息相同,且从所述目标应用中获取的应用标识和所述应用信息包括的应用标识相同时,确定所述目标应用验证为合法。[0022]可选地,所述基于从所述目标应用中获取的应用标识和所述应用包名称,将所述目标应用的自启动权限的状态设置为所述目标状态,包括:[0023]调用自启动权限设置函数,所述自启动权限设置函数为允许通过内容提供器ContentProvider调用的函数;[0024]基于从所述目标应用中获取的应用标识和所述应用包名称,通过所述自启动权限设置函数将所述目标应用的自启动权限的状态设置为所述目标状态。[0025]根据本公开实施例的第二方面,提供一种设置自启动权限的装置,所述装置包括:[0026]获取模块,用于当检测到目标应用需要设置自启动权限时,从所述目标应用中获取所述目标应用的应用标识、应用包名称和目标状态,所述目标状态是指所述目标应用将所述自启动权限期望设置的状态,所述目标状态为开启状态或关闭状态;[0027]设置模块,用于基于从所述目标应用中获取的应用标识和所述应用包名称,将所述目标应用的自启动权限的状态设置为所述目标状态。[0028]可选地,所述获取模块包括:[0029]第一确定子模块,用于当检测到所述第三方应用对所述目标应用的调用操作,且所述目标应用的自启动权限的状态不为开启状态时,确定所述目标应用需要设置自启动权限;[0030]检测子模块,用于检测是否接收到所述目标应用的应用包名称和所述目标状态,所述应用包名称和所述目标状态是所述目标应用在根据所述调用操作自启动失败之后发送的;[0031]第一获取子模块,用于当接收到所述目标应用的应用包名称和所述目标状态时,通过第一指定函数从所述目标应用中获取所述目标应用的应用标识。[0032]可选地,所述获取模块包括:[0033]第二确定子模块,用于当接收到自启动权限设置请求时,确定检测到所述目标应用需要设置自启动权限,所述自启动权限设置请求中携带所述目标应用的应用包名称和所述目标状态;[0034]第二获取子模块,用于获取所述自启动权限设置请求中携带的应用包名称和目标状态,并通过第一指定函数从所述目标应用中获取所述目标应用的应用标识。[0035]可选地,所述装置还包括:[0036]验证模块,用于验证所述目标应用的合法性;[0037]触发模块,用于当所述目标应用验证为合法,触发所述设置模块基于从所述目标应用中获取的应用标识和所述应用包名称,将所述目标应用的自启动权限的状态设置为所述目标状态。[0038]可选地,所述验证模块包括:[0039]第三获取子模块,用于从所述目标应用中获取所述目标应用的签名信息;[0040]第四获取子模块,用于基于所述目标应用的应用包名称,通过第二指定函数获取存储的包括有所述目标应用的应用标识和签名信息的应用信息;[0041]第三确定子模块,用于当从所述目标应用中获取的签名信息和所述应用信息中包括的签名信息相同,且从所述目标应用中获取的应用标识和所述应用信息包括的应用标识相同时,确定所述目标应用验证为合法。[0042]可选地,所述设置模块包括:[0043]调用子模块,用于调用自启动权限设置函数,所述自启动权限设置函数为允许通过内容提供器ContentProvider调用的函数;[0044]设置子模块,用于基于从所述目标应用中获取的应用标识和所述应用包名称,通过所述自启动权限设置函数将所述目标应用的自启动权限的状态设置为所述目标状态。[0045]根据本公开实施例的第三方面,提供一种设置自启动权限的装置,所述装置包括:[0046]处理器;[0047]用于存储处理器可执行指令的存储器;[0048]其中,所述处理器被配置为上述第一方面所述的任一项方法的步骤。[0049]根据本公开实施例的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述第一方面所述的任一项方法的步骤。[0050]本公开的实施例提供的技术方案可以包括以下有益效果:当检测到目标应用需要设置自启动权限时,可以从该目标应用中获取该目标应用的应用标识、应用包名称和该目标应用将自启动权限期望设置的目标状态,之后,可以基于从目标应用中获取的该目标应用的应用标识和应用包名称,将目标应用的自启动权限的状态设置为目标状态。也即是,在本公开实施例中,可以通过从目标应用中自动获取该目标应用的应用标识、应用包名称和目标状态来自动设置该目标应用的自启动权限,无需用户通过复杂的手动操作来对应用的自启动权限进行设置,简化了操作,使得自启动权限的设置更加便捷。[0051]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明[0052]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。[0053]图1是根据一示例性实施例示出的一种设置自启动权限的方法的流程图。[0054]图2是根据一示例性实施例示出的一种设置自启动权限的方法的流程图。[0055]图3A是根据一示例性实施例示出的一种设置自启动权限的装置的框图。[0056]图3B是根据一示例性实施例示出的一种获取模块的框图。[0057]图3C是根据一示例性实施例示出的另一种获取模块的框图。[0058]图3D是根据一示例性实施例示出的一种设置自启动权限的装置的框图。[0059]图3E是根据一示例性实施例示出的一种设置模块的框图。[0060]图4是根据一示例性实施例示出的一种设置自启动权限的装置的框图。具体实施方式[0061]为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。[0062]在对本公开实施例进行详细的解释说明之前,先对本公开实施例涉及的应用场景进行介绍。[0063]当前,终端中安装的应用的数量越来越多,应用的功能也越来越强大。其中,很多应用会申请开启自启动权限。在应用的自启动权限开启之后,当终端开机时,该应用可以随着终端的开机而自动启动。或者,在终端开机后运行的过程中,如果有第三方应用调用该应用,该应用也可以自动启动。除此之外,一旦具有自启动权限的应用自动启动之后,当用户对后台应用的应用进程进行清理时,该应用的应用进程将不会受到影响,而是可以持续在后台运行。[0064]由于应用具有自启动权限之后,该应用在开机或者被调用时即会自动启动,并且启动后可以一直在后台持续运行,因此,该应用将会占用终端的系统资源,并且消耗终端的电量。然而,在某些情况下,该应用可能只是在开机时需要自动启动,之后,该应用中的功能将不会再被使用,这样,如果该应用一直保持自启动权限的状态为开启状态,那么,后续将持续在后台运行,浪费终端的系统资源和电量。又或者,该应用的功能可能只是在被第三方应用调用的过程中才会被使用,这样,当第三方应用对该应用的调用结束之后,该应用的功能可能就不会再被使用了,在这种情况下,如果一直保持该应用的自启动权限的状态为开启状态,那么,在调用结束之后该应用也将持续在后台运行,浪费终端的系统资源和电量。由上述描述可知,如果将应用的自启动权限开启,在终端运行的过程中,可能并不需要将该应用的自启动权限一直保持为开启状态,而是需要适时的重新设置该应用的自启动权限。另外,如果不开启应用的自启动权限,那么,在终端运行的过程中,当该应用被第三方应用调用时,该应用就不能自动启动,此时,也需要对该应用的自启动权限进行设置。由此可见,针对上述场景,亟需一种可以灵活自动的设置自启动权限的方法,而本公开实施例提供的设置自启动权限的方法即可以用于在上述应用场景下或者与上述应用场景相类似的场景下对应用的自启动权限进行设置,从而使得自启动权限设置更加灵活便捷。[0065]相关技术中,当设置应用的自启动权限时,均是由用户手动操作完成的,操作繁琐且效率低下。例如,对于具有自启动权限的应用,在启动后,当该应用的功能不再被使用时,用户需要通过终端的设置页面手动将该应用的自启动权限关闭,操作繁琐且极不智能化。再例如,对于不具有自启动权限的应用,当有第三方应用由于需要使用到该应用中的功能而调用该应用时,由于该应用不具有自启动权限,该应用无法被调用,此时,也需要用户通过终端的设置页面手动将该应用的自启动权限开启,既影响第三方应用的正常使用,也增加了用户的操作。为了解决上述问题,本公开实施例提供了一种设置自启动权限的方法,接下来将结合附图对该设置自启动权限的方法进行详细的解释说明。[0066]图1是根据一示例性实施例示出的一种设置自启动权限的方法的流程图,如图1所示,该方法用于终端中,包括以下步骤:[0067]在步骤101中,当检测到目标应用需要设置自启动权限时,从目标应用中获取目标应用的应用标识、应用包名称和目标状态,目标状态是指目标应用将自启动权限期望设置的状态,目标状态为开启状态或关闭状态。[0068]在步骤102中,基于从目标应用中获取的应用标识和应用包名称,将目标应用的自启动权限的状态设置为目标状态。[0069]在本公开实施例中,当检测到目标应用需要设置自启动权限时,可以从该目标应用中获取该目标应用的应用标识、应用包名称和该目标应用将自启动权限期望设置的目标状态,之后,可以基于从目标应用中获取的该目标应用的应用标识和应用包名称,将目标应用的自启动权限的状态设置为目标状态。也即是,在本公开实施例中,可以通过从目标应用中自动获取该目标应用的应用标识、应用包名称和目标状态来自动设置该目标应用的自启动权限,无需用户通过复杂的手动操作来对应用的自启动权限进行设置,简化了操作,使得自启动权限的设置更加便捷。[0070]可选地,当检测到目标应用需要设置自启动权限时,从目标应用中获取目标应用的应用标识、应用包名称和目标状态,包括:[0071]当检测到第三方应用对目标应用的调用操作,且目标应用的自启动权限的状态不为开启状态时,确定目标应用需要设置自启动权限;[0072]检测是否接收到目标应用的应用包名称和目标状态,应用包名称和目标状态是目标应用在根据调用操作自启动失败之后发送的;[0073]当接收到目标应用的应用包名称和目标状态时,通过第一指定函数从目标应用中获取目标应用的应用标识。[0074]可选地,当检测到目标应用需要设置自启动权限时,从目标应用中获取目标应用的应用标识、应用包名称和目标状态,包括:[0075]当接收到自启动权限设置请求时,确定检测到目标应用需要设置自启动权限,自启动权限设置请求中携带目标应用的应用包名称和目标状态;[0076]获取自启动权限设置请求中携带的应用包名称和目标状态,并通过第一指定函数从目标应用中获取目标应用的应用标识。[0077]可选地,该方法还包括:[0078]验证目标应用的合法性;[0079]当目标应用验证为合法,执行基于从目标应用中获取的应用标识和应用包名称,将目标应用的自启动权限的状态设置为目标状态的步骤。[0080]可选地,验证目标应用的合法性,包括:[0081]从目标应用中获取目标应用的签名信息;[0082]基于目标应用的应用包名称,通过第二指定函数获取存储的包括有目标应用的应用标识和签名信息的应用信息;[0083]当从目标应用中获取的签名信息和应用信息中包括的签名信息相同,且从目标应用中获取的应用标识和应用信息包括的应用标识相同时,确定目标应用验证为合法。[0084]可选地,基于从目标应用中获取的应用标识和应用包名称,将目标应用的自启动权限的状态设置为目标状态,包括:[0085]调用自启动权限设置函数,自启动权限设置函数为允许通过内容提供器ContentProvider调用的函数;[0086]基于从目标应用中获取的应用标识和应用包名称,通过自启动权限设置函数将目标应用的自启动权限的状态设置为目标状态。[0087]上述所有可选技术方案,均可按照任意结合形成本公开的可选实施例,本公开实施例对此不再--赘述。[0088]图2是根据一示例性实施例示出的一种设置自启动权限的方法的流程图,该方法用于终端中,如图2所示,该方法包括以下步骤:[0089]步骤201:判断目标应用是否需要设置自启动权限。[0090]在本公开实施例中,终端可以通过多种方式来判断目标应用是否需要设置自启动权限。[0091]第一种方式:终端可以实时检测是否接收到由目标应用发送的该目标应用的应用包名称和目标状态,当终端接收到该目标应用的应用包名称和目标状态时,即可以确定该目标应用需要设置自启动权限。[0092]在该种实现方式中,目标应用可以在终端开机时进行自启动失败之后,或者,在被第三方应用调用时进行自启动失败之后,获取自身的自启动权限的状态,并判断该自启动权限的状态是否为开启状态,如果该自启动权限的状态不为开启状态,则可以向终端发送应用包名称和目标状态,此时,该目标状态即为开启状态。[0093]可选地,目标应用也可以在检测到第三方应用调用结束之后或者在检测到处于后台运行状态时,获取自身的自启动权限的状态,并判断该自启动权限的状态是否为开启状态,如果该自启动权限的状态为开启状态,则可以向终端发送应用包名称和目标状态,此时,该目标状态为关闭状态。[0094]另外,在该种实现方式中,也可以是第三方应用在调用目标应用失败之后,向目标应用发送调用失败的通知消息,目标应用在接收到该通知消息之后,通过判断自身的自启动权限的状态来向终端发送目标应用的应用包名称和目标状态,而终端在接收到该目标应用的应用包名称和目标状态时,确定该目标应用需要设置自启动权限。[0095]需要说明的是,当目标应用向终端发送该目标应用的应用包名称和目标状态时,可以将该应用包名称和目标状态作为Bundleextras中的参数传输至终端。[0096]第二种方式:终端可以实时检测是否存在第三方应用对目标应用的调用操作,当检测到第三方应用对目标应用的调用操作之后,可以获取该目标应用的自启动权限的状态,并判断该目标应用的自启动权限的状态是否为开启状态,当该目标应用的自启动权限的状态不为开启状态时,即可以确定该目标应用需要设置自启动权限。[0097]在该种实现方式中,终端可以直接对目标应用进行监测,当目标应用被第三方应用调用时即可以直接获取该目标应用的自启动权限的状态,以此来确定是否需要对目标应用的自启动权限进行设置。[0098]可选的,在该种实现方式中,终端不仅可以通过检测第三方应用对目标应用的调用操作来判断该目标应用是否需要设置自启动权限,对于已启动的目标应用,终端还可以检测该目标应用当前是否处于后台运行状态以及该目标应用的自启动权限的状态是否为开启状态。当该目标应用当前处于后台运行状态且该目标应用的自启动权限的状态为开启状态,终端可以确定该目标应用需要设置自启动权限。[0099]第三种方式:终端可以判断是否接收到自启动权限设置请求,当接收到自启动权限设置请求时,终端可以确定该目标应用需要设置自启动权限。其中,该自启动设置请求中携带目标应用的应用包名称和目标状态,该目标状态是指目标应用将自启动权限期望设置的状态,该目标状态可以为开启状态,也可以为关闭状态。[0100]在该种实现方式中,目标应用可以在需要设置自启动权限时,通过向终端发送自启动权限请求来将目标应用的应用包名称和目标状态传输给终端。终端在接收到该自启动权限设置请求时,确定该目标应用需要设置自启动权限。[0101]需要说明的是,在该种实现方式中,在什么样的情况下触发目标应用向终端发送自启动权限设置请求的相关说明可以参考第一种实现方式中目标应用向终端发送应用包名称和目标状态时的触发条件,本公开实施例对此不做具体限定。[0102]当终端确定该目标应用需要设置自启动权限时,即可以通过接下来的步骤来对该目标应用的自启动权限进行设置。[0103]步骤202:从目标应用中获取目标应用的应用标识、应用包名称和目标状态。[0104]在本公开实施例中,可以将终端的系统APIApplicationProgrammingInterface,应用程序编程接口)通过内容提供器ContentProvider的方式提供给目标应用进行调用。其中,可以在授权管理的manifest文件中定义内容管理器权限为安全,通过调用该内容管理器中的call函数完成自启动权限的设置。[0105]其中,当终端确定目标应用需要设置自启动权限时,即可以调用内容管理器中的call函数来获取设置自启动权限所需要的参数。[0106]需要说明的是,由于终端可以通过不同的方式来确定目标应用是否需要设置自启动权限,因此,相应地,终端也可以通过不同的方式从目标应用中获取目标应用的应用标识、应用包名称和目标状态。[0107]其中,当终端是通过检测是否接收到目标应用发送的应用包名称和目标状态来确定目标应用是否需要设置自启动权限时,终端可以直接将获取接收到的应用包名称和目标状态。当获取到应用包名称和目标状态之后,由于后续进行自启动权限的设置时,还需要用到目标应用的应用标识,而通常情况下,目标应用只能主动将应用包名称和目标状态传输至终端,而不会主动将目标应用的应用标识传输至终端,因此,终端可以通过第一指定函数从目标应用中获取目标应用的应用标识。[0108]其中,应用标识是指终端为该应用分配的用来唯一标识该应用的信息,例如,该应用标识可以为UIDUserIdentification,用户身份证明)。另外,第一指定函数可以为用于获取应用的UID的函数,例如,该第一指定函数可以为Binder.getCalIingUid函数。[0109]可选地,当终端通过对目标应用进行监测确定目标应用需要设置自启动权限时,终端可以向目标应用发送设置自启动权限的通知消息,目标应用可以在接收到该通知消息之后,向终端发送目标应用的应用包名称和目标状态,当终端接收到该应用包名称和目标状态之后,则可以通过第一指定函数从目标应用中获取目标应用的应用标识。[0110]可选地,当终端在接收到目标应用发送的自启动权限设置请求后确定该目标应用需要设置自启动权限时,由于该自启动权限设置请求中可以携带目标应用的应用包名称和目标状态,因此,终端可以直接获取该自启动权限设置请求中携带的应用包名称和目标状态,并通过第一指定函数从目标应用中获取目标应用的应用标识。[0111]在本公开实施例中,由于目标应用可以直接向终端传递应用包名称和目标状态,而应用标识则需要通过第一指定函数进行获取,因此,为了进一步确定目标应用确实期望设置自启动权限,以避免终端做无用功,终端可以在确定获取到应用包名称和目标状态之后,再通过第一指定函数获取应用标识。当然,为了节省时间,终端也可以在确定目标应用需要设置自启动权限时,同时获取目标应用的应用标识、应用包名称和目标状态,本公开实施例对此不做具体限定。[0112]可选地,为了防止终端中安装的应用恶意调用系统API来开启自启动权限,终端在从目标应用中获取到目标应用的应用标识、应用包名称和目标状态之后,还可以根据获取的目标应用的应用包名称,验证目标应用的合法性,当目标应用验证合法时,再通过步骤203来设置目标应用的自启动权限的状态。[0113]其中,终端验证目标应用的合法性的具体操作可以为:终端可以从目标应用中获取该目标应用的签名信息,并基于目标应用的应用包名称,通过第二指定函数获取存储的包括有目标应用的应用标识和签名信息的应用信息。之后,终端可以判断从目标应用中获取的签名信息和存储的应用信息中包括的签名信息是否相同,并判断从目标应用中获取的应用标识和存储的应用信息中包括的应用标识是否相同。如果从目标应用中获取的签名信息和应用信息中包括的签名信息相同,且从目标应用中获取的应用标识和应用信息中包括的应用标识也相同,则可以确定对目标应用的身份校验通过,此时,终端即可以确定目标应用验证为合法,也即是,对目标应用的验证通过。[0114]需要说明的是,在本发明实施例中,无论采用上述何种方式来判断目标应用是否需要设置自启动权限,也无论采用上述何种方式来从目标应用中获取目标应用的应用标识、应用包名称和目标状态,在从目标应用中获取到应用标识和应用包名称之后,终端均可以通过上述介绍的方法来验证目标应用的合法性,并在验证合法之后,通过步骤203来设置目标应用的自启动权限的状态。当然,上述验证目标应用的合法性的方法仅是本发明实施例提供的一种示例性的验证方法,在实际应用中,还可以通过其他方法来验证目标应用的合法性,以避免终端中安装的应用恶意的调用系统API来更改自启动权限的状态,本发明实施例对此不做具体限定。[0115]步骤203:基于从目标应用中获取的应用标识和应用包名称,将目标应用的自启动权限的状态设置为目标状态。[0116]当从目标应用中获取到应用标识和应用包名称之后,终端可以调用自启动权限设置函数,并基于从目标应用中获取的应用标识和应用包名称,通过该自启动权限设置函数将该目标应用的自启动权限的状态设置为目标状态。[0117]当然,如果终端要对目标应用的身份进行校验,那么,终端则可以在确定对目标应用的身份校验通过之后,再根据从目标应用中获取到的应用标识、应用包名称和目标状态,通过调用自启动权限设置函数来设置自启动权限。当然,如果终端对目标应用的身份校验未通过,则可以停止对目标应用的自启动权限的设置。[0118]需要说明的是,基于前述描述可知,本公开实施例中是将系统API通过内容提供器ContentProvider的方式提供给目标应用进行调用,并通过调用该内容管理器中的cal1函数来完成自启动权限的设置的。因此,当终端调用call函数获取到目标应用的应用标识、应用包名称和目标状态之后,终端可以将获取的应用标识、应用包名称以及目标状态作为call函数中自启动权限设置函数的的参数,从而将该应用的自启动权限设置为目标状态。例如,该自启动权限设置函数可以为PermissionManagerService.getlnstancecontext.setModeO,其中,setModeO中的第一个参数可以用于指示设置自启动权限的预设参数,第二个参数可以为应用标识,第三个参数可以为应用包名称,第四个参数可以为目标状态。或者,第一个参数为用于指示开启自启动权限的预设参数,第二个参数为应用标识,第三个参数为应用包名称,第四个参数为根据目标状态转换的参数,例如,如果目标状态为开启状态,此时,第四个参数即为allowed。如果目标状态为关闭状态,此时,第四个参数即可以为ignored。当然,第一个参数和第四个参数还可以有其他的设置方式,以使得自启动权限设置函数可以根据这些参数来对应用的自启动权限进行设置,本公开实施例对此不做具体的限定。[0119]在本公开实施例中,可以将系统API通过内容提供器ContentProvider的方式提供给目标应用进行调用,这样,当终端确定该目标应用需要设置自启动权限时,即可以自动获取该目标应用的应用标识、应用包名称和目标状态,并根据获取的应用标识、应用包名称和目标状态来自动设置该目标应用的自启动权限。无需用户通过复杂的手动操作来对应用的自启动权限进行设置,简化了操作,使得自启动权限的设置更加便捷。另外,在本公开实施例中,由于终端可以在不同的情境下,通过不同的方式自动判断目标应用是否需要设置自启动权限,因此,终端可以在最短的时间内完成对目标应用的自启动权限的设置,避免了自启动权限长期处于开启状态,而目标应用的功能并没有被使用的情况下,由于目标应用持续在后台运行所造成的对终端系统资源以及电量的浪费。同时,对于自启动权限处于关闭状态的目标应用,终端也可以在该目标应用中的功能被使用时,在最短时间内自动将该目标应用的自启动权限设置为开启状态,提高了自启动权限设置的效率,为用户的使用带来了方便。[0120]通过上述实施例主要对本公开实施例提供的设置自启动权限的方法的流程进行了详细的介绍。接下来将以目标应用为黄页为例,给出自动设置黄页的自启动权限的示例性代码。[0121]需要说明的是,黄页中具备号码识别功能,当终端接收到通话请求时,黄页可以自启动进行号码识别。如果黄页的自启动权限为关闭状态,那么,当接收到通话请求时,黄页由于不具备自启动权限,就无法进行号码识别,此时,终端即可以通过上述提供的设置自启动权限的方法将该黄页的自启动权限设置为开启状态。如果黄页的自启动权限的状态为开启状态,那么,当号码识别完成之后,黄页将进入后台运行状态,此时,为了避免黄页持续在后台运行所造成的对系统资源的浪费和对终端电量的消耗,终端可以通过上述实施例中提供的设置自启动权限的方法将该黄页的自启动权限设置为关闭状态。其中,终端将该黄页的自启动权限设置为开启状态的实现代码如下:[0122]Bundleextras=newBuiidle;[0125]接下来将对本公开实施例提供的设置自启动权限的装置进行解释说明。[0126]图3A是根据一示例性实施例示出的一种设置自启动权限的装置300的框图。参照图3A,该装置300包括获取模块301和设置模块302。[0127]获取模块301,用于当检测到目标应用需要设置自启动权限时,从目标应用中获取目标应用的应用标识、应用包名称和目标状态,目标状态是指目标应用将自启动权限期望设置的状态,目标状态为开启状态或关闭状态;[0128]设置模块302,用于基于从目标应用中获取的应用标识和应用包名称,将目标应用的自启动权限的状态设置为目标状态。[0129]可选地,参见图3B,获取模块301包括:[0130]第一确定子模块3011,用于当检测到第三方应用对目标应用的调用操作,且目标应用的自启动权限的状态不为开启状态时,确定目标应用需要设置自启动权限;[0131]检测子模块3012,用于检测是否接收到目标应用的应用包名称和目标状态,应用包名称和目标状态是目标应用在根据调用操作自启动失败之后发送的;[0132]第一获取子模块3013,用于当接收到目标应用的应用包名称和目标状态时,通过第一指定函数从目标应用中获取目标应用的应用标识。[0133]可选地,参见图3C,获取模块301包括:[0134]第二确定子模块3014,用于当接收到自启动权限设置请求时,确定检测到目标应用需要设置自启动权限,自启动权限设置请求中携带目标应用的应用包名称和目标状态;[0135]第二获取子模块3014,用于获取自启动权限设置请求中携带的应用包名称和目标状态,并通过第一指定函数从目标应用中获取目标应用的应用标识。[0136]可选地,参见图3D,该装置300还包括:[0137]验证模块303,用于验证目标应用的合法性;[0138]触发模块304,用于当目标应用验证为合法,触发设置模块302基于从目标应用中获取的应用标识和应用包名称,将目标应用的自启动权限的状态设置为目标状态。[0139]可选地,验证模块303包括:[0140]第三获取子模块,用于从目标应用中获取目标应用的签名信息;[0141]第四获取子模块,用于基于目标应用的应用包名称,通过第二指定函数获取存储的包括有目标应用的应用标识和签名信息的应用信息;[0142]第三确定子模块,用于当从目标应用中获取的签名信息和应用信息中包括的签名信息相同,且从目标应用中获取的应用标识和应用信息包括的应用标识相同时,确定目标应用验证为合法。[0143]可选地,参见图3E,设置模块302包括:[0144]调用子模块3021,用于调用自启动权限设置函数,自启动权限设置函数为允许通过内容提供器ContentProvider调用的函数;[0145]设置子模块3022,用于基于从目标应用中获取的应用标识和应用包名称,通过自启动权限设置函数将目标应用的自启动权限的状态设置为目标状态。[0146]在本公开实施例中,当检测到目标应用需要设置自启动权限时,可以从该目标应用中获取该目标应用的应用标识、应用包名称和该目标应用将自启动权限期望设置的目标状态,之后,可以基于从目标应用中获取的该目标应用的应用标识和应用包名称,将目标应用的自启动权限的状态设置为目标状态。也即是,在本公开实施例中,可以通过从目标应用中自动获取该目标应用的应用标识、应用包名称和目标状态来自动设置该目标应用的自启动权限,无需用户通过复杂的手动操作来对应用的自启动权限进行设置,简化了操作,使得自启动权限的设置更加便捷。[0147]关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。[0148]图4是根据一示例性实施例示出的一种用于设置自启动权限的装置400的框图。例如,装置400可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。[0149]参照图4,装置400可以包括以下一个或多个组件:处理组件402,存储器404,电源组件406,多媒体组件408,音频组件410,输入输出(IO的接口412,传感器组件414,以及通信组件416。[0150]处理组件402通常控制装置400的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件402可以包括一个或多个处理器420来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件402可以包括一个或多个模块,便于处理组件402和其他组件之间的交互。例如,处理组件402可以包括多媒体模块,以方便多媒体组件408和处理组件402之间的交互。[0151]存储器404被配置为存储各种类型的数据以支持在装置400的操作。这些数据的示例包括用于在装置400上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器404可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器SRAM,电可擦除可编程只读存储器EEPROM,可擦除可编程只读存储器EPROM,可编程只读存储器PROM,只读存储器ROM,磁存储器,快闪存储器,磁盘或光盘。[0152]电源组件406为装置400的各种组件提供电源。电源组件406可以包括电源管理系统,一个或多个电源,及其他与为装置400生成、管理和分配电源相关联的组件。[0153]多媒体组件408包括在所述装置400和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器LCD和触摸面板TP。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件408包括一个前置摄像头和或后置摄像头。当装置400处于操作模式,如拍摄模式或视频模式时,前置摄像头和或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。[0154]音频组件410被配置为输出和或输入音频信号。例如,音频组件410包括一个麦克风MIC,当装置400处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器404或经由通信组件416发送。在一些实施例中,音频组件410还包括一个扬声器,用于输出音频信号。[0155]IO接口412为处理组件402和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。[0156]传感器组件414包括一个或多个传感器,用于为装置400提供各个方面的状态评估。例如,传感器组件414可以检测到装置400的打开关闭状态,组件的相对定位,例如所述组件为装置400的显示器和小键盘,传感器组件414还可以检测装置400或装置400—个组件的位置改变,用户与装置400接触的存在或不存在,装置400方位或加速减速和装置400的温度变化。传感器组件414可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件414还可以包括光传感器,如CMOS或C⑶图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件414还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。[0157]通信组件416被配置为便于装置400和其他设备之间有线或无线方式的通信。装置400可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件416经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件416还包括近场通信NFC模块,以促进短程通信。例如,在NFC模块可基于射频识别RFID技术,红外数据协会IrDA技术,超宽带UWB技术,蓝牙BT技术和其他技术来实现。[0158]在示例性实施例中,装置400可以被一个或多个应用专用集成电路ASIC、数字信号处理器(DSP、数字信号处理设备(DSPD、可编程逻辑器件(PLD、现场可编程门阵列FPGA、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述图1和2所示实施例提供的方法。[0159]在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器404,上述指令可由装置400的处理器420执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是R0M、随机存取存储器RAM、CD-R0M、磁带、软盘和光数据存储设备等。[0160]—种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行一种如图1和2所示的实施例提供的设置自启动权限的方法。[0161]本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。[0162]应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

权利要求:1.一种设置自启动权限的方法,其特征在于,所述方法包括:当检测到目标应用需要设置自启动权限时,从所述目标应用中获取所述目标应用的应用标识、应用包名称和目标状态,所述目标状态是指所述目标应用将所述自启动权限期望设置的状态,所述目标状态为开启状态或关闭状态;基于从所述目标应用中获取的应用标识和所述应用包名称,将所述目标应用的自启动权限的状态设置为所述目标状态。2.根据权利要求1所述的方法,其特征在于,所述当检测到目标应用需要设置自启动权限时,从所述目标应用中获取所述目标应用的应用标识、应用包名称和目标状态,包括:当检测到所述第三方应用对所述目标应用的调用操作,且所述目标应用的自启动权限的状态不为开启状态时,确定所述目标应用需要设置自启动权限;检测是否接收到所述目标应用的应用包名称和所述目标状态,所述应用包名称和所述目标状态是所述目标应用在根据所述调用操作自启动失败之后发送的;当接收到所述目标应用的应用包名称和所述目标状态时,通过第一指定函数从所述目标应用中获取所述目标应用的应用标识。3.根据权利要求1所述的方法,其特征在于,所述当检测到目标应用需要设置自启动权限时,从所述目标应用中获取目标应用的应用标识、应用包名称和目标状态,包括:当接收到自启动权限设置请求时,确定检测到所述目标应用需要设置自启动权限,所述自启动权限设置请求中携带所述目标应用的应用包名称和所述目标状态;获取所述自启动权限设置请求中携带的应用包名称和目标状态,并通过第一指定函数从所述目标应用中获取所述目标应用的应用标识。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:验证所述目标应用的合法性;当所述目标应用验证为合法,执行所述基于从所述目标应用中获取的应用标识和所述应用包名称,将所述目标应用的自启动权限的状态设置为所述目标状态的步骤。5.根据权利要求4所述的方法,其特征在于,所述验证所述目标应用的合法性,包括:从所述目标应用中获取所述目标应用的签名信息;基于所述目标应用的应用包名称,通过第二指定函数获取存储的包括有所述目标应用的应用标识和签名信息的应用信息;当从所述目标应用中获取的签名信息和所述应用信息中包括的签名信息相同,且从所述目标应用中获取的应用标识和所述应用信息包括的应用标识相同时,确定所述目标应用验证为合法。6.根据权利要求1-5任一所述的方法,所述基于从所述目标应用中获取的应用标识和所述应用包名称,将所述目标应用的自启动权限的状态设置为所述目标状态,包括:调用自启动权限设置函数,所述自启动权限设置函数为允许通过内容提供器ContentProvider调用的函数;基于从所述目标应用中获取的应用标识和所述应用包名称,通过所述自启动权限设置函数将所述目标应用的自启动权限的状态设置为所述目标状态。7.—种设置自启动权限的装置,其特征在于,所述装置包括:获取模块,用于当检测到目标应用需要设置自启动权限时,从所述目标应用中获取所述目标应用的应用标识、应用包名称和目标状态,所述目标状态是指所述目标应用将所述自启动权限期望设置的状态,所述目标状态为开启状态或关闭状态;设置模块,用于基于从所述目标应用中获取的应用标识和所述应用包名称,将所述目标应用的自启动权限的状态设置为所述目标状态。8.根据权利要求7所述的装置,其特征在于,所述获取模块包括:第一确定子模块,用于当检测到所述第三方应用对所述目标应用的调用操作,且所述目标应用的自启动权限的状态不为开启状态时,确定所述目标应用需要设置自启动权限;检测子模块,用于检测是否接收到所述目标应用的应用包名称和所述目标状态,所述应用包名称和所述目标状态是所述目标应用在根据所述调用操作自启动失败之后发送的;第一获取子模块,用于当接收到所述目标应用的应用包名称和所述目标状态时,通过第一指定函数从所述目标应用中获取所述目标应用的应用标识。9.根据权利要求7所述的装置,其特征在于,所述获取模块包括:第二确定子模块,用于当接收到自启动权限设置请求时,确定检测到所述目标应用需要设置自启动权限,所述自启动权限设置请求中携带所述目标应用的应用包名称和所述目标状态;第二获取子模块,用于获取所述自启动权限设置请求中携带的应用包名称和目标状态,并通过第一指定函数从所述目标应用中获取所述目标应用的应用标识。10.根据权利要求1所述的装置,其特征在于,所述装置还包括:验证模块,用于验证所述目标应用的合法性;触发模块,用于当所述目标应用验证为合法,触发所述设置模块基于从所述目标应用中获取的应用标识和所述应用包名称,将所述目标应用的自启动权限的状态设置为所述目标状态。11.根据权利要求10所述的装置,其特征在于,所述验证模块包括:第三获取子模块,用于从所述目标应用中获取所述目标应用的签名信息;第四获取子模块,用于基于所述目标应用的应用包名称,通过第二指定函数获取存储的包括有所述目标应用的应用标识和签名信息的应用信息;第三确定子模块,用于当从所述目标应用中获取的签名信息和所述应用信息中包括的签名信息相同,且从所述目标应用中获取的应用标识和所述应用信息包括的应用标识相同时,确定所述目标应用验证为合法。12.根据权利要求7-11任一所述的装置,所述设置模块包括:调用子模块,用于调用自启动权限设置函数,所述自启动权限设置函数为允许通过内容提供器ContentProvider调用的函数;设置子模块,用于基于从所述目标应用中获取的应用标识和所述应用包名称,通过所述自启动权限设置函数将所述目标应用的自启动权限的状态设置为所述目标状态。13.—种设置自启动权限的装置,其特征在于,所述装置包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为权利要求1-6所述的任一项方法的步骤。14.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现权利要求1-6所述的任一项方法的步骤。

百度查询: 北京小米移动软件有限公司 设置自启动权限的方法、装置及存储介质

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。