在一个应用程序中添加了多个antivity后,在manifest.xml文件中会除了主Activity外,其它的Activity属性中都会有个警告:
Exported activity does not require permission
这是因为在Activity中添加了intent-filter属性,这个属性的添加意味着该Activity已经暴露给了不同进程的应用,也就是 说其它的应用程序不需要任何权限就可以*的实例化该Activity。显然,如果不是有特殊需求,没人会希望自己写得应用程序会有这么个隐患。
解决方法:
在Activity中添加:
android:exported="false"。
还有一种解决方法是定义Activity的权限。
先在<manifest>标签下加入
<permission android:protectionLevel="normal" android:name="oem.permission.SENDMAIL"></permission>
然后在<service>标签下
android:permission="oem.permission.SENDMAIL"
<service android:permission = "oem.permission.SENDMAIL" android:name = ".AIDLService" > <intent-filter> <action android:name = "com.example.server.AIDLService" /> <category android:name = "android.intent.category.DEFAULT" /> </intent-filter> </service>