不同的Android权限级别

Tia*_*sta 3 android

<uses-permission>在应用程序和活动标签中请求权限使用和android:permission有什么区别?

当我只使用:

 <uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
Run Code Online (Sandbox Code Playgroud)

该应用程序运行正常,但如果我也使用:

<application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true" 
android:permission="android.permission.WAKE_LOCK">
Run Code Online (Sandbox Code Playgroud)

甚至:

<activity android:name=".android.Everlong"
          android:label="@string/app_name" android:screenOrientation="portrait" 
          android:permission="android.permission.WAKE_LOCK">
Run Code Online (Sandbox Code Playgroud)

由于安全性错误,该应用无法启动...

nic*_*ild 5

从文档:

机器人:许可

客户端必须具有的权限名称才能启动活动或以其他方式使其响应意图.如果未授予startActivity()或startActivityForResult()的调用者指定的权限,则其意图将不会传递给活动.如果未设置此属性,则元素的权限属性设置的权限将应用于活动.如果两个属性均未设置,则活动不受权限保护.有关权限的详细信息,请参阅简介中的"权限"部分和另一个文档"安全性和权限".

uses-permission - 在(应用程序的)应用程序安装时,用户必须接受此权限.

android:permission - 当另一个应用程序想要调用您的应用程序时,您可以指定他们需要请求的权限(在安装其他应用程序时)给您打电话.

基本上,如果另一个应用程序想要Activity通过a 调用您的Intent,并且您指定您需要以这种方式获得权限,则该应用程序必须能够访问该权限.否则,Intent您的应用将拒绝该请求.