有什么区别:
<uses-permission android:name="some_permission" />
和
<activity android:permission="some_permission" />
我的应用程序使用前者而不是后者仍然有效。我为什么要使用后者? 具体来说,为什么没有后者才能运作?
提前致谢...
答案 0 :(得分:2)
虽然从结构和标签中可以清楚地看到,uses-permission
表示应用程序将使用此权限,android:permission
内部活动标记表示启动该权限所需的权限活动。
以下是官方文档中uses-permission
和android:permission
之间的差异。
android:permission
(活动权限执行)
使用该权限应用的权限 android:清单中标记的权限属性 限制谁可以启动该活动。在此期间检查权限 Context.startActivity()和Activity.startActivityForResult()。如果 调用者没有SecurityException所需的权限 从电话中抛出。
链接:https://developer.android.com/guide/topics/permissions/overview.html#permission_enforcement
uses-permission
指定用户必须为其授予的系统权限 该应用程序正常运行。权限由用户授予 应用程序已安装(在运行Android 5.1和Android的设备上) 应用程序运行时(在运行Android 6.0和Android的设备上) 更高)。
链接:https://developer.android.com/guide/topics/manifest/uses-permission-element.html
现在来你的问题:
我的应用程序使用前者而不是后者仍然有效。为什么 我会使用后者吗?具体来说,为什么它没有 后者?
回答:如上所述,如果您希望其他应用访问您的某项活动,即您的应用或活动不需要该权限,则很明显后者是必需的但是其他应用启动那个活动。因此,如果没有后者,即android:permission
希望它有意义。
答案 1 :(得分:1)
<uses-permission>
是您的应用程序在寻求用户使用某些功能的权限时
例如:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18" />
<permission>
是指您的应用程序要求其他应用程序寻求用户使用您的某些功能的许可。
例如:
<permission android:description="string resource" android:icon="drawable resource" android:label="string resource" android:name="string" android:permissionGroup="string" android:protectionLevel=["normal" | "dangerous" | "signature" | ...] />
您可以阅读: https://developer.android.com/guide/topics/manifest/permission-element.html
答案 2 :(得分:1)
总之,
operator[]
是您的应用应该执行某些用户数据敏感或危险操作的东西。
<uses-permission android:name="some_permission" />
是应用中的其他应用或其他组件应该保留的内容,以便开始您的活动。