मैं एक ऐसे अनुप्रयोग को विकसित कर रहा हूं जिसमें इंस्टॉलेशन के बाद होम स्क्रीन पर शॉर्टकट जोड़ना चाहिए और एप्लिकेशन को अनइंस्टॉल करने के बाद इसे हटा देना चाहिए। एप्लिकेशन को अंतिम उपयोगकर्ता डिवाइस पर पूर्वस्थापित किया जाएगा, लेकिन अभी भी अनइंस्टॉल करने का विकल्प होना चाहिए)। यह कार्य बहुत आसान दिखता है लेकिन मुझे इसे लागू करने में कई परेशानी का सामना करना पड़ा है।स्वचालित रूप से अनइंस्टॉल करने पर होम स्क्रीन से एप्लिकेशन शॉर्टकट को कैसे निकालें?
मैंने क्या किया:
- जोड़ें शॉर्टकट एप्लिकेशन पहले प्रक्षेपण पर या न्यूट डिवाइस पर रिबूट com.android.launcher.action.INSTALL_SHORTCUT का उपयोग कर होम स्क्रीन पर।
- मैन्युअल रूप से com.android.launcher.action.UNINSTALL_SHORTCUT का उपयोग करके शॉर्टकट हटाएं।
क्या मैं नहीं है (और लगभग देने) कर सकते हैं:
- स्वचालित रूप से शॉर्टकट को दूर जब आवेदन की स्थापना रद्द की जा रही है।
Intent.ACTION_PACKAGE_REMOVED का उपयोग करने का कोई तरीका नहीं है क्योंकि एप्लिकेशन को अनइंस्टॉल किया जा रहा है, इस उद्देश्य को प्राप्त नहीं होता है। मैंने कुछ परीक्षण किए और पाया कि एप्लिकेशन के साथ हटाए जा रहे एकमात्र शॉर्टकट प्रकार को शॉर्टकट है जो मेनू से बनाया गया है 'होम स्क्रीन में जोड़ें => शॉर्टकट्स => एप्लिकेशन => एप्लिकेशन गतिविधि'। शॉर्टकट जिन्हें प्रोग्रामेटिक रूप से बनाया जा रहा है या ऐप को अनइंस्टॉल करने के बाद एंड्रॉइडमैनिफेस्ट में घोषित किया गया है, होम स्क्रीन पर रहते हैं।
इस विषय के बारे में मंचों पर लगभग कोई दस्तावेज़ और पोस्ट नहीं है और मैं थोड़ा उलझन में हूं कि ऐसा आसान ऑपरेशन जो एंड्रॉइड सुरक्षा नीति के साथ विरोधाभास नहीं करता है, सीधे तरीके से लागू नहीं किया जा सका।
क्या एप्लिकेशन को अनइंस्टॉल करने पर संबंधित शॉर्टकट को हटाने के लिए ओएस से पूछने का कोई तरीका है? क्या मैं इस घटना को पकड़ सकता हूं कि इसे हटाए जाने से पहले एप्लिकेशन को अनइंस्टॉल किया जा रहा है?
ध्यान दें कि "पूर्व-स्थापित" जरूरी नहीं है कि "फर्मवेयर"। एक आवेदन स्थापित करना संभव है जैसे कि यह एक सामान्य अनुप्रयोग था, लेकिन डिवाइस पर पहले से ही शिप करने के लिए ऐसा होता है। ARCHOS 5 एंड्रॉइड टैबलेट ने उदाहरण के लिए एक दर्जन या उससे अधिक ऐप्स के साथ किया था। वास्तव में – CommonsWare
। मैं उन उपकरणों के साथ काम कर रहा हूं जो * फर्मवेयर पर ऐप्स इंस्टॉल किए जाएंगे, इसलिए मैंने फर्मवेयर भाग का उल्लेख करना सुनिश्चित किया। लेकिन मुझे लगता है कि PACKAGE_REMOVED प्रसारण की कमी के कारण भी समस्या खड़ी रहेगी। –
हालांकि आपकी टिप्पणी ने मुझे गैर-फर्मवेयर प्री-इंस्टॉलेशन के लिए संभावित समाधान जोड़ने के लिए प्रेरित किया। :) –