在Android中导出活动是否允许其他应用程序也调用该活动的任何公共方法?

问题描述:

在AndroidManifest中设置“exported = true”允许其他应用程序启动该特定活动。这是否也允许其他应用程序手动调用该导出的Activity中的任何公共方法?如果是这样,代码将如何做?在Android中导出活动是否允许其他应用程序也调用该活动的任何公共方法?

请阅读官方documentation仔细:

这个元素活动是否可以通过组件的其他应用程序 推出 - true如果可以,和false如果不是。如果 false,该活动只能由相同的 应用程序或具有相同用户ID的应用程序的组件启动。如果您使用的是 意图过滤器,则不应设置此元素false。如果你这样做, 和一个应用程序试图调用该活动,系统会抛出一个 ActivityNotFoundException。相反,您应该阻止其他应用程序 通过不为其设置意图过滤器来调用该活动。

如果您没有意向过滤器,则此元素 的默认值为false。如果设置元素true,则该活动可以从 获取到知道其确切类名的任何应用程序,但在系统尝试匹配隐式意图时不会解析。

此属性不是限制活动暴露于其他应用程序的唯一方法。您还可以使用权限来限制可以调用该活动的外部实体(请参阅权限 属性)。