版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013626215/article/details/84973688
项目开发中有时需要安装没有应用图标的应用,以下提供2中方法供参考使用:
第一种方式,在启动页的activity中添加schema,因为我们把app的入口Activity申明为由接收隐士的Intent来启动,这样自然也就不会显示图标了
<activity
android:name="net.dd.daemon.MainActivity"
android:theme="@style/OnePixelActivity"
android:launchMode="singleInstance">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
<!--此处定义的schema供从外部调用-->
<data
android:host="net.dd.daemon"
android:path="/keep"
android:scheme="daemon"/>
</intent-filter>
</activity>
启动方式:
Uri uri = Uri.parse("daemon://net.dd.daemon/keep");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
context.startActivity(intent);
第二种方式,注释掉LAUNCHER
<activity
android:name="net.dd.daemon.MainActivity"
android:theme="@style/OnePixelActivity"
android:launchMode="singleInstance">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<!--此处隐藏了LAUNCHER也就没有了图标-->
<!--<category android:name="android.intent.category.LAUNCHER"/>-->
</intent-filter>
</activity>
如果想显示图标又想用隐式调用,只需再添加一个intent-filter之后,做schema处理就可以了,参考如下:
<activity
android:name="net.dd.daemon.MainActivity"
android:theme="@style/OnePixelActivity"
android:launchMode="singleInstance">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!--此处定义的schema供从外部调用-->
<data
android:host="net.dd.daemon"
android:path="/keep"
android:scheme="daemon"/>
</intent-filter>
</activity>