1. 如果显式exported属性,不管这个activity有没有设置intent-filter,那么exported的值就是显式设置的值
2. 如果没有设置exported属性,那么exported属性取决于这个activity是否有intent-filter
如有intent-filter,那么exported的值就是true
如没有intent-filter,那么exported的值就是false
3. 如何合理设置exported
封闭式:被调用的Activity与调用的Context必须在同一个App,其他任何App不能调用 这种是我们最常见的Activity,有2种情况:
没有intent-filter情况,可以不设置exported或者设置exported为false;
有intent-filter情况,必须设置exported为false。
半封闭式:被调用的Activity只能被部分其他App调用,如同一个公司的2个App之间这种场景下,除了满足封闭式设置外,还必须把调用App和被调用App设置相同的uid,即在2个App的AndroidManifest.xml添加相同的android:sharedUserId
开放式:可以被任何App调用这种场景主要是对外接口,如微信、微博的分享接口。大多数情况下,这样的Activity都会有intent-filter,因此也没必要显式地把exported设为true,不设是可以的,当然不能设为false。但如果你没有intent-filter,那就必须显式地把exported设为true。 当然,对于三方app接口的intent-filter设置还有一些要求,如在隐式intent调用必须添加
android.intent.category.DEFAULT





































苏公安网备 32011402010933号