2012-05-01 3 views
5

मैं अपने ऐप को ऐप की सूची और हालिया ऐप्स सूची से हटाना चाहता हूं। तो मैंने निम्नलिखित कोड के साथ अपनी मुख्य/लॉन्चर गतिविधि को अक्षम करने का प्रयास किया:लॉन्चर गतिविधि अक्षम करने के बाद एंड्रॉइड पुनर्स्थापित विफल रहता है

ComponentName componentToDisable = new ComponentName(context, MainActivity.class); 
context.getPackageManager().setComponentEnabledSetting(componentToDisable, 
      PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); 

यह काम करता है। लेकिन अब मैं ऐप को पुनर्स्थापित करने का प्रयास करता हूं और यह कहता है कि "गतिविधि मुख्य गतिविधि वर्ग मौजूद नहीं है"। अगर मैं ऐप को अनइंस्टॉल करता हूं, तो इंस्टॉलेशन फिर से काम करता है। मैं इस मुद्दे को कैसे संभाल सकता हूं? आपके समय के लिए बहुत बहुत धन्यवाद और मदद

उत्तर

5

मुझे पता चला कि मुझे इसे पुनर्स्थापित करने से पहले गतिविधि को सक्षम करना है। यह ब्रॉडकास्ट रिसीवर पैकेज_एड/ईवेंट को सुनकर और फिर से प्राप्त करने के द्वारा किया जा सकता है।

public void onReceive(Context context, Intent intent) { 
    Log.i("Receiver","got event"); 
    ComponentName componentToDisable = new ComponentName(context,BlockableComponentActivity.class); 
    context.getPackageManager().setComponentEnabledSetting(componentToDisable, 
      PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); 
} 

रिसीवर के लिए प्रकट अंश:

<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> 

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