Android - 安裝應用(APP) 不顯示圖標
來源:程序員人生 發布時間:2015-01-20 08:51:06 閱讀次數:14375次
安裝利用(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了。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈