2013-07-01 10 views
5

मेरे प्रारंभिक प्रश्न मूल रूप से इस की तर्ज पर कुछ ऐसा था: Clearing and setting the default home applicationघटक को सक्षम और अक्षम कैसे करें?

यही सवाल का संतोषजनक जवाब मिल गया था, फिर भी, बात मैं जवाब में कठिनाई समझ आ रही है आप कैसे सक्रिय कर सकता है और फिर एक घटक को अक्षम है जावा कोड में मेनिफेस्ट से?

उत्तर

13

पैकेज प्रबंधक के लिए सक्षम या अक्षम कर सकते घटक menifest फ़ाइल में घोषित उपयोग करके दो अक्षम घटक और PackageManager.COMPONENT_ENABLED_STATE_ENABLED घटक सक्षम के लिए के लिए PackageManager.COMPONENT_ENABLED_STATE_DISABLED झंडा रहे हैं।

PackageManager pm = getApplicationContext().getPackageManager(); 
    ComponentName componentName = new ComponentName("com.app", 
     ".broadcast_receivers.OnNetworkChangedReceiver"); 
     pm.setComponentEnabledSetting(componentName, 
     PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 
     PackageManager.DONT_KILL_APP); 

Android मेनिफेस्ट:

<receiver android:name=".broadcast_receivers.OnNetworkChangedReceiver" 
      android:enabled="true"> 
     <intent-filter> 
       <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/> 
     </intent-filter> 
</receiver> 
+1

एक ही कोड दोनों सक्षम बनाता है और घटक को निष्क्रिय या वहाँ एक सूक्ष्म अंतर है? – scibor

+0

कभी नहीं, आपने जवाब दिया है, – scibor

+0

अक्षम घटक पैकेजमैनेजर.COMPONENT_ENABLED_STATE_DISABLED और सक्षम घटक के लिए PackageManager.COMPONENT_ENABLED_STATE_ENABLED –

0

पवन दृष्टिकोण के लिए अधिक सामान्य कार्यान्वयन लेने:

public static void setComponentState(Context context, String packageName , String componentClassName, boolean enabled) 
{ 
    PackageManager pm = context.getApplicationContext().getPackageManager(); 
    ComponentName componentName = new ComponentName(packageName, componentClassName); 
    int state = enabled ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED; 
    pm.setComponentEnabledSetting(componentName, 
      state, 
      PackageManager.DONT_KILL_APP); 

} 
संबंधित मुद्दे