android隐藏应用图标

版权声明:本文为博主原创文章,未经博主允许不得转载。 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>

猜你喜欢

转载自blog.csdn.net/u013626215/article/details/84973688