导出的活动不需要许可

时间:2013-02-24 22:27:56

标签: java android

所以,我正在阅读教程以学习android,我有一个波纹管代码,它在标题中给我这个警告,并且应用程序不会因某种原因运行任何帮助?

这是代码:

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.learn.tam.Splash"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.SPLASH" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.example.learn.tam.StartingPoint"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.STARTINGPOINT" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
</application>

显示错误的部分是秒         &LT;活动

1 个答案:

答案 0 :(得分:3)

您宣传设备上的所有应用都可以启动com.example.learn.tam.StartingPoint,并且Lint警告您这是不安全的。

最有可能的是,您不需要<intent-filter> - 您通常只需要那些您期望其他应用启动的活动。因此,摆脱此警告的最简单方法是删除<intent-filter>并在启动该活动时使用显式Intent(例如new Intent(this, StartingPoint.class))。

如果您选择保留<intent-filter>,无论出于何种原因,请:

  1. 请勿使用android.intent.action.作为您自己发明的操作的前缀 - 提出其他内容,例如com.example.learn.tam.

  2. android:exported="false"添加到<activity>元素即可,尽管您拥有<intent-filter>,但您不希望其他应用程序启动您的活动