標籤:
安裝應用(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中再加入一個intent-filter標籤,將data元素移到建立的標籤中。
這樣應用既可以顯示表徵圖又可以響應特定的Uri了。
Android - 安裝應用(APP) 不顯示表徵圖