在应用程序和活动代码中使用<uses-permission>
和android:permission请求权限有什么区别?
当我只使用:
<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
该应用运行正常,但如果我也使用:
<application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true"
android:permission="android.permission.WAKE_LOCK">
甚至:
<activity android:name=".android.Everlong"
android:label="@string/app_name" android:screenOrientation="portrait"
android:permission="android.permission.WAKE_LOCK">
由于安全错误,该应用无法启动...
答案 0 :(得分:5)
机器人:权限
客户必须拥有的权限的名称 启动活动或以其他方式让它响应意图。如果一个 startActivity()或startActivityForResult()的调用者还没有 授予指定权限后,其意图将不会被传递给 活动。如果未设置此属性,则由权限设置 element的权限属性适用于活动。 如果两个属性均未设置,则活动不受a保护 允许。有关权限的详细信息,请参阅权限 介绍部分和另一份文件,安全和 权限。
uses-permission - 在(应用程序的)安装时,用户必须接受此权限。
android:permission - 当另一个应用程序想要调用您的应用程序时,您可以指定他们需要请求的权限(在安装其他应用程序时)给您打电话。
基本上,如果其他应用程序想通过Activity
呼叫您Intent
,并且您指定需要这种方式的权限,则该应用必须有权访问该权限。否则,Intent
将被您的应用拒绝。
答案 1 :(得分:4)
<uses-permission>
是使用特定“权限”的“请求”。这会提醒用户安装您想要访问其设备某些部分的应用程序(例如唤醒锁,访问SD卡,手机状态等)。它还允许您的应用访问需要特定权限的其他应用(及其组件)。
当您在应用的各个组件上使用android:permission
时,它会指示其他第三方应用需要哪些权限才能启动您的应用组件。
答案 2 :(得分:1)
我做了一点环顾,这里是活动内权限属性的文档: http://developer.android.com/reference/android/R.styleable.html#AndroidManifestActivity_permission
此页面: http://developer.android.com/guide/topics/security/security.html 还讨论了清单中的一些权限和安全性。