Android - 安裝應用(APP) 不顯示圖標

jopen 8年前發布 | 11K 次閱讀 Android開發 移動開發

安裝應用(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了。




來自: http://blog.csdn.net//caroline_wendy/article/details/42783603

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!