2010-11-01 150 views
9

有什麼方法可以隱藏Android應用程序列表中的應用程序圖標?應用程序應該從Market下載並打開一些GUI來配置我的應用程序。我不想在應用程序列表中看到我的應用程序的任何圖標。用戶不應該能夠運行它。從Android應用程序列表中隱藏應用程序

通過我知道一些方法方式: 從清單類別android:name="android.intent.category.LAUNCHER"

刪除此行,但它不是爲我工作,因爲沒有顯示GUI。

非常感謝!

回答

4

刪除啓動程序類別是正確的。

嘗試添加android.intent.category.DEFAULT到意圖過濾器以便能夠調用活動。

2

感謝您的重播。 我找到了一種從應用程序列表中隱藏應用程序圖標的方法;

PackageManager pm = getApplicationContext().getPackageManager(); 
pm.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); 

但在應用程序重新安裝時發生錯誤「活動類不存在」,它是不可能而不卸載重新安裝應用程序。 .... 有什麼問題 ?

還有Launcher Pro的變種。但這是一個應用程序。我的應用程序應該從Android Market下載,並不保證所有用戶都有Launcher Pro。 我希望以編程方式從應用程序列表中隱藏應用程序圖標。 PackageManager的方法適用於我......但是重裝有問題。當您想要從市場更新應用程序時,這很重要。

+0

我現在有同樣的要求。如果您找到解決方案,請分享它。 – png 2012-04-30 11:30:53

0

我找到了一種方法,當你重新安裝應用程序時,這個工作。

添加具有意圖過濾器動作的廣播接收器android.intent.action.PACKAGE_ADDED

在onReceived方法,你必須激活已禁用的組件:

ComponentName componentToEnable = new ComponentName(context, Your_disabled_class.class); 
PackageManager pm = context.getPackageManager(); 
pm.setComponentEnabledSetting(componentToEnable, PackageManager.COMPONENT_ENABLED_STATE_ENABLED,       PackageManager.DONT_KILL_APP); 

完整的AndroidManifest.xml接收機:

<receiver android:name="PackageChangeReceiver"> 

<intent-filter> 
<action android:name="android.intent.action.PACKAGE_ADDED"/> 
<action android:name="android.intent.action.PACKAGE_REPLACED"/> 
<action android:name="android.intent.action.PACKAGE_REMOVED"/> 

<data android:scheme="package"/> 

</intent-filter> 
</receiver>