导出的活动不需要权限



所以,我正在学习教程来学习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>

显示错误的部分是第二个 <活动>

您正在宣传设备上的任何应用程序都可以启动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. <activity>元素中添加android:exported="false",说尽管您有一个 <intent-filter> ,您不希望其他应用程序启动您的活动

最新更新