2011-11-15 96 views
42

我的應用程序被設計爲只需要運行一次。因此,我想在第一次運行後從啓動器中隱藏圖標,但不卸載應用程序。Android如何以編程方式隱藏啓動器圖標

我見過類似的應用程序 - 他們可以從啓動程序的應用程序列表中刪除自己的圖標。我怎樣才能達到相同的結果?謝謝。

+7

從來沒有見過說實話,出於好奇:你能舉出一個或兩個應用程序嗎? – 2011-11-15 10:31:45

+0

我很好奇,plz命名一個或兩個應用程序,可以從啓動器應用程序列表中刪除自己的圖標。謝謝 – Houcine

+0

http://stackoverflow.com/questions/1103027/how-to-change-an-application-icon-programmatically-in-android – AB1209

回答

63
PackageManager p = getPackageManager(); 
p.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); 

請注意,圖標可能不會消失,直到下一次重新啓動。使用下面的代碼

+0

謝謝,但如果我使用它,我是否可以通過Market更新我的應用程序? – user1047351

+0

是的,我自己在我自己的應用程序中使用它。 – Kuffs

+1

那麼你如何定義一個快捷鍵來實際啓動你的應用程序 – png

10

隱藏應用程序的圖標

PackageManager pkg=this.getPackageManager(); 
pkg.setComponentEnabledSetting(new ComponentName(this,SplashActivity.class),PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 
         PackageManager.DONT_KILL_APP); 

//活動是在manifiest文件中第一次打開該聲明爲<category android:name="android.intent.category.LAUNCHER" />

這裏是如何帶回了應用程序的圖標

PackageManager p = getPackageManager(); 
ComponentName componentName = new ComponentName(this,SplashActivity.class); 
p.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); 
1

通過在AndroidManifest的活動聲明中不包含帶有MAIN和LAUNCHER的intent過濾器,您可以擁有一個沒有啓動器的應用程序 - th然後問題變成如何做第一次啓動.. Widget可能?

+0

我不認爲OP意味着「在桌面上」創建的圖標,而是「應用程序抽屜」中的圖標。另外..也許你可以在安裝後使用Play商店中的「打開」按鈕打開它。 –