Android AndroidManifest.xml文件权限出现“Permission is only granted to system apps”的解决办法

废话不多说,直接上图

例如出现这个问题,好像也不会影响我们APP的正常使用,但是有强迫症的人实在是受不鸟。

该错误的意思是该权限只是针对系统级的app的。

那么只是针对系统级的app的这个是什么意思的呢?

有时候使用某些api需要使用系统权限,如调用PackageInstaller的相关接口,需要android.permission.INSTALL_PACKAGES权限,该权限系统只会授权给系统应用。

好吧,原来是这样的。那我们来解决这个问题。

 

解决方式一:

网上很多都说在AS的File -> Settings -> Inspections

在Android Lint, locate Using system app permission. 选择一个比Error等级低的.(意思就是把Error换成warning或者其它等级)

好吧我的乖乖,找了半天,Android Lint之后就没找到下一步的locate ,原来是我的AS升级了,我是用的是3.2.2的版本。

原来是在Android Lint之后到correctness里面往下翻,找到Using system app permission右边有一个severity.把error改为warning就行了。

ES的方法Preferences --> EditorEditor --> Inspections --> Android Lint --> uncheck item Using System app permissio

解决方式二:

就是把uses-permission改为permisson即可。

那为什么要这样改呢?

我们可以了解一下uses-permission和permisson到底有什么区别?

uses-permission是系统(SDK)定义的,使用的时候直接调用系统定义好的权限就可以对应用开启权限。permisson相当于自定义的一个权限,可以供其他应用程序使用本应用的说明。

网上还有说法uses-permission和permisson的作用于不同,这种说法表述有误。

在一般情况下实际上不需要为自己的应用程序声明某个权限,除非你提供了供其他应用程序调用的代码或者数据。这个时候你才需要使用<permission>这个标签,很显然这个标签可以让我们声明自己程序的权限。

刚好,我们申明的这个权限出现这个问题,就是使用某些api需要使用系统权限。所以把把uses-permission改为permisson,相当于这个权限是我们自己定义的。也可以解决这个问题。

 

 

 

 

 

 

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值