如何在Android中强制执行Activity的自定义权限?

22

我已经在Android中创建了一个自定义权限:

<permission
    android:name="com.master.me.CUSTOM_PERMISSION_TEST"
    android:description="@string/des_permission"
    android:label="labelhere">
</permission>

我该如何在AndroidManifest.xml文件中实施这个功能?


1
可能是如何在Android中使用自定义权限?的重复问题。 - Master
在哪里我们必须在一个活动中强制执行自定义权限? - Ajay S
1个回答

46

android:permission属性应用到activity标签中。

像下面这样:

<activity android:permission="com.master.me.CUSTOM_PERMISSION_TEST"
            android:name=".YourActivity"
            android:label="@string/activity_label" />

当您的其他应用程序需要启动此活动时,您需要向自定义权限添加uses-permission

<uses-permission android:name="com.master.me.CUSTOM_PERMISSION_TEST"/>
深入介绍Android权限模型及如何保护多组件应用程序的文章是了解Android权限的非常好的文章。而如何在Android中使用自定义权限?也是一个非常好的Stack Overflow帖子。

@PankajKumar:只是有一个简单的疑问:在活动中使用CUSTOM_PERMISSION_TEST是否意味着任何其他没有此权限(CUSTOM_PERMISSION_TEST)的应用程序都无法启动此活动? - Zax
@Zax 是的,你很完美。 - Pankaj Kumar
3
如果在定义自定义权限时添加 protectionLevel="signature",即使另一个应用程序声明了您的权限,也无法访问该 Activity,直到被相同证书签名。详见 https://developer.android.com/guide/topics/manifest/permission-element.html#plevel - Pankaj Kumar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接