標籤:
關於app 隱藏表徵圖的情況,有很多文章在寫。我寫下自己的感受
看到的最多的情況是:AndroidManifest.xml檔案中在入口Activity的intent-filter裡去掉<category android:name=”android.intent.category.LAUNCHER” />或者LAUNCHER改為DEFAULT,這樣的確可以起到隱藏表徵圖的功能,但是程式也打不開,沒法運行了。
還有一種是通過以下的方式隱藏表徵圖:
1 PackageManager packageManager = getPackageManager(); 2 ComponentName componentName = new ComponentName(this, StartActivity.class); 3 int res = packageManager.getComponentEnabledSetting(componentName); 4 if (res == PackageManager.COMPONENT_ENABLED_STATE_DEFAULT 5 || res == PackageManager.COMPONENT_ENABLED_STATE_ENABLED) { 6 // 隱藏應用表徵圖 7 packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 8 PackageManager.DONT_KILL_APP); 9 } else {10 // 顯示應用表徵圖11 packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT,12 PackageManager.DONT_KILL_APP);13 }
不過我用這種方式並沒有起作用。我用的是以下的方式:
<activityandroid:name="tv.huan.xmpp.activity.MessageActivity"android:configChanges="orientation|keyboardHidden"android:screenOrientation="portrait" ><intent-filter><action android:name="android.intent.action.MAIN" /><data android:host="AuthActivity" android:scheme="com.xtt.www" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity>
最主要是添加這一句:<data android:host="AuthActivity" android:scheme="com.xtt.www" />,這樣我們把app的入口Activity申明為由接收隱士的Intent來啟動,這樣自然也就不會顯示表徵圖了。不過需要注意,scheme對大小寫敏感,這樣我們指定的入口Activity可以響應Uri為com.android.example://AuthActivity的特定 Intent.
app表徵圖隱藏