程序员人生 网站导航

Android - 安装应用(APP) 不显示图标

栏目:综合技术时间:2015-01-20 08:51:06

安装利用(APP) 不显示图标


本文地址:http://blog.csdn.net/caroline_wendy


在启动的activity的AndroidManifest注册中,添加隐式启动的data:

<!-- 启动界面 --> <activity android:name="me.wcl.Activities.WelcomeActivity" android:configChanges="keyboardHidden" android:label="@string/app_name" android:theme="@style/NoActionBarActivity" android:screenOrientation="portrait"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <data android:host="AuthActivity" android:scheme="com.wcl.www" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>


参考:http://blog.csdn.net/ydt_lwj/article/details/9419239/


删除利用图标的若干解决方案:

1、AndroidManifest.xml文件中在入口Activity的intent-filter里去掉
<category android:name=”android.intent.category.LAUNCHER” />
或将LAUNCHER改成DEFAULT


2、在程序中加入下面的代码
显示图片:
PackageManager p = getPackageManager(); p.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
隐藏图标:
PackageManager p = getPackageManager(); p.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
PackageManager.COMPONENT_ENABLED_STATE_ENABLED //显示利用图标
PackageManager.COMPONENT_ENABLED_STATE_DISABLED //隐藏利用图标
我用这俩个值来显示和隐藏利用图标有问题,隐藏以后就没法在显示利用图标了,在设置里的所有利用里也找不到了;
将参数值该成这两个值就没有问题了,建议使用这两个值。

3、去掉android:icon=”@drawable/ic_launcher”中的资源啊,等等等等。。。

但是试过了每种方法以后你都发现起到了作用但是却产生了其他的问题:

1、如果去掉<category android:name=”android.intent.category.LAUNCHER” />,就表示app没有启动入口了,
这模样确切是解决了不显示图标的效果,但是那样的话我们的利用也运行不了了。

2、我们来看看android developer上的说明:
public static final int COMPONENT_ENABLED_STATE_DISABLED
Flag for setApplicationEnabledSetting(String, int, int) and setComponentEnabledSetting(ComponentName, int, int): This component or application has been explicitly disabled, regardless of what it has specified in its manifest.
意思是,即便你在manifest中声明了这个component或application,当你设置为COMPONENT_ENABLED_STATE_DISABLED时,他们都是不可用的。也就是说,如果你在MainActivity中这样设置了,那末利用图标不会显示,利用也不会运行。

3、就不说了,我觉得是垂死挣扎的做法。

最优的解决方案:
接下来我要说的这类方法可以隐藏图标,同是也能够正常启动运行。
在manifest的入口activity里面intent-filter中设置<data></data>元素。
比如:
<data android:host=”AuthActivity” android:scheme=”com.android.example” />
注意,android:scheme是大小写敏感的,必须以小写字母开头
也就是这个MainActivity可以响应Uri为com.android.example://AuthActivity的特定 Intent
但是为何加入这个以后app就不显示图标了呢?
由于我们把app的入口Activity申明为由接收隐士的Intent来启动,这样自然也就不会显示图标了。
如果需要显示图标的话而且也必须响应上述Uri的话,那末我们可以在该Activity中再加入1个intent-filter标签,将data元素移到新建的标签中。
这样利用既可以显示图标又可以响应特定的Uri了。




------分隔线----------------------------
------分隔线----------------------------

最新技术推荐