如何防止其他Android应用程序访问我的活动

我有一个Android应用程序,我在清单中定义了几个不同的活动。 其中一些活动具有我使用的意图filter(例如ACTION_PICK)。 当其他应用程序请求活动来处理ACTION_PICK时,由于意图filter,这些活动将显示出来。 有什么办法来防止这种情况,以便我的活动不能被其他应用程序访问? 我已经尝试在我的活动中设置android:exported =“false”,但没有做任何事情。

Solutions Collecting From Web of "如何防止其他Android应用程序访问我的活动"

你需要:
*定义一个权限(仅适用于有签名的应用程序)
*定义您的应用程序使用您定义的权限
*要求您要保护的活动的权限。 (小心不要求它为您的主要发射活动)。

<!-- 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>