项目需求
创建一个不带启动图标的app
项目实现
1.低版本上
在低版本的Android系统上面,可以简单使用这个,但是现在很多版本都不适用了。
<activityandroid:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity>
这个是我们的入口的Activity,我们可以将这个去掉就可以了
<category android:name="android.intent.category.LAUNCHER" />
这样的话在应用列表是看不到我们的app的图标的,但是在设置-应用列表可以显示。
但是这个现在不太适用了,我们在开发完成,安装app的使用,Android Studio报错
Could not identify launch activity: Default Activity not found
Error while Launching activity
2.比较推荐
还是在注册清单文件上面添加这些代码
<activityandroid:name=".MainActivity"android:enabled="true"android:exported="true"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /><datatools:ignore="AppLinkUrlError"android:host="MainActivity"android:scheme="com.example.jservice.MainActivity" /></intent-filter></activity>
这样也能达到效果,亲测在Android 9上面可以使用。
3.比较推荐
还是在注册清单文件上面添加代码
<activityandroid:name=".MainActivity"android:enabled="true"android:exported="true"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><data android:scheme="com.example.jservice.MainActivity" /></intent-filter></activity>
这种方式也是可以亲测可行的方式.
PS:代码解释
<action android:name="android.intent.action.MAIN" />
指定该活动作为应用的主入口点,即在应用启动时会打开这个活动。
<category android:name="android.intent.category.LAUNCHER" />
指定这个活动作为启动器活动,将应用放置在设备的应用程序列表中
【data】 元素指定了该活动可以处理的数据方案(scheme)和主机(host):
tools:ignore="AppLinkUrlError"
这是一个工具属性,用于告知开发工具忽略关于应用链接URL错误的检查。
android:host="MainActivity"
指定主机名为 MainActivity。这通常用于定义特定的URI资源。
android:scheme="com.example.jservice.MainActivity"
指定数据方案(scheme)为 com.example.jservice.MainActivity。
<action android:name="android.intent.action.VIEW" />
指定该活动可以处理 VIEW 意图。
<category android:name="android.intent.category.DEFAULT" />
指定 VIEW 意图的默认类别。