code小生,一个专注Android畛域的技术平台java
做者:BrightVan
地址:https://www.jianshu.com/p/b60cde583237
申明:本文已获BrightVan受权,转发等请联络原做者受权android
在Manifest文件中利用Permission标签署义自身的权限:平安
<?xml version="1.0" encoding="utf-8"?>解释下各个属性:app
name,该标签就是权限的名字。spa
description,该标签就是权限的引见。code
permissionGroup,指定该权限的组。orm
protectionLevel,指定保护级别。xml
Android将权限分为若干个保护级别,normal, dangerous, signature等。normal就是失常权限,无锡小程序,该权限并不会给用户或许设施的隐衷带来危险;dangerous就是风险权限,该级别的权限普通会给用户的数据或设施的隐衷带来危险;signature指的是,只要相反签名的运用能力利用该权限。更多的引见可以参考protectionLevel。排序
二、利用场景自定义权限通常用于暴显露去的组件,降职平安性。Android允许一个运用(客户端)调用另外一个运用(服务端)的组件。那么做为服务端的运用就得裸露相应的组件,客户端运用能力访问。固然,在裸露的时分,权限是非必须的,若是裸露的组件没有权限的话,那么任何的其他运用均可能来调用该组件;若是该组件央求了权限,那么只要领有该权限的运用能力调用该组件。ip
<activityexported属性就是表明能否裸露。该例子并无要求调用者需要央求权限,也就是说,任何的运用就可以调用才组件。若是每一个运用均可能调用我们的组件的话,显然是不平安的,我们但愿只要利用了我们的权限的运用,能力调用我们裸露的组件,我们可以在activity中退出permission属性。
<activity除了上面的模式,还可以通过intent-filter隐式启动:
<activityAndroid不允许两个不一样的运用定义一个相反名字的权限(除非这两个运用领有相反的签名),因此在命名的时分,需要顺便留意。
领有相反自定义权限的软件必须利用一样的签名,不然后一个程序没法装置。
3.二、和运用装置顺序的关系。场景:App A中申明了权限PermissionA,App B中利用了权限PermissionA。