我尝试在我的应用中使用由其他应用程序( Bazaar )创建的自定义权限(它是使用市场com.farsitel.bazaar.permission.PAY_THROUGH_BAZAAR
的权限)。通常它工作正常。
但是,如果我的申请后安装了 Bazaar 。我的应用无法获得自定义权限(由 Bazaar 创建)并抛出异常。我想知道如果其他人遇到过类似的问题,你有什么解决方案吗?
答案 0 :(得分:1)
这是理想的行为。
在教科书中,Nikolay Elenkov(2014)撰写的《 Android安全内部知识:Android安全体系结构深入指南》说:
系统只能授予其知道的权限,即 意味着定义自定义权限的应用程序需要 在使用这些权限的应用程序之前安装 已安装。如果应用程序请求 系统,它将被忽略并且未被授予。
顺便说一句,在安装时,PackageManager将权限分配给每个应用程序,它维护已安装软件包的一些信息,例如软件包名称,版本和权限,这些信息存储在/data/system/packages.xml
中。如果要查询设备上的所有权限,可以尝试pm list permissions
。