所以,我正在学习 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>
显示错误的部分是第二个 < Activity
最佳答案
您正在宣传设备上的任何应用程序都可以启动 com.example.learn.tam.StartingPoint
,Lint 警告您这是不安全的。
很可能,您不需要 <intent-filter>
——您通常只需要那些用于您期望其他应用程序启动的 Activity 。因此,摆脱此警告的最简单方法是删除 <intent-filter>
并使用显式 Intent
当您开始该 Activity 时(例如 new Intent(this, StartingPoint.class)
)。
如果您选择保留 <intent-filter>
,无论出于何种原因,请:
请勿使用
android.intent.action.
作为您自己发明的操作的前缀 - 想出其他东西,例如com.example.learn.tam.
添加
android:exported="false"
到<activity>
元素说,尽管事实上你有一个<intent-filter>
,您不希望其他应用程序启动您的 Activity
关于java - 导出的 Activity 不需要许可,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15057420/