我有一个Android应用程序,我在清单中定义了几个不同的活动。其中一些活动具有我使用的意图过滤器(例如ACTION_PICK)。由于intent-filters,这些活动会在其他应用程序请求活动来处理ACTION_PICK时显示。有没有办法防止这种情况,以便其他应用程序无法访问我的活动?我已经尝试在我的活动中设置android:exported =“false”,但这没有做任何事。
答案 0 :(得分:15)
您需要:
*定义权限(仅适用于具有签名的应用程序)
*定义您的应用程序使用您定义的权限
*要求获得您想要保护的活动的许可。 (小心不要在主要的发布活动中要求它。)
<!-- define a permission -->
<permission
android:protectionLevel="signature"
android:name="com.mypackage.MYPERMISSION"/>
<uses-permission android:name="com.mypackage.MYPERMISSION" />
<!-- define an activity which can only be started through internal code -->
<activity android:name="..."
android:permission="com.mypackage.MYPERMISSION" >
...
</activity>