2010-07-26 41 views
7

की स्थापना रद्द करने के रूप में होमस्क्रीन पर एक अनुप्रयोग शॉर्टकट जोड़ने के लिए नीचे दिखाया गया है मैं एक ऐसी ही codesnippet उपयोग कर रहा हूँ:आवेदन लांचर आइकन होम स्क्रीन से नहीं हटाया जाता है जब Android एप्लिकेशन

Intent shortcutIntent = new Intent(Intent.ACTION_MAIN); 
    shortcutIntent.setClassName(this, this.getClass().getName()); 
    shortcutIntent.putExtra(EXTRA_KEY, "ApiDemos Provided This Shortcut"); 

    // Then, set up the container intent (the response to the caller) 

    Intent intent = new Intent(); 
    intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); 
    intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.shortcut_name)); 
    Parcelable iconResource = Intent.ShortcutIconResource.fromContext(
      this, R.drawable.app_sample_code); 
    intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconResource); 

    // Now, return the result to the launcher 

    setResult(RESULT_OK, intent); 

शॉर्टकट बनाने के साथ कोई समस्या नहीं है , लेकिन ऐप को अनइंस्टॉल करते समय, शॉर्टकट होमस्क्रीन पर बना रहता है। अन्य ऐप्स को अनइंस्टॉल करते समय वे सभी अपने संबंधित होमस्क्रीन शॉर्टकट को भी हटाते हैं। मैं अपने "निर्मित-द्वारा-कोड-शॉर्टकट-आइकन" के साथ प्राप्त करने का प्रयास करता हूं

क्या आप में से कोई भी स्टैक ओवरफ्लो पर एंड्रॉइड विशेषज्ञों को पता है कि ऐप अनइंस्टॉल होने पर होमस्क्रीन से ऐप शॉर्टकट को हटाने के लिए क्या आवश्यक है ?

मैं कुछ संबंधित धागे पाया, लेकिन वे मुझे मेरी समस्या के लिए समाधान नहीं होता है, लेकिन कृपया पकड़ने के लिए स्वतंत्र महसूस:

[0] https://developer.android.com/intl/de/resources/samples/ApiDemos/src/com/example/android/apis/app/LauncherShortcuts.html

[1] Remove application from launcher programatically in Android

[2] How to remove application shortcut from home screen on uninstall automatically?

+1

"अन्य ऐप्स अनइंस्टॉल करते समय वे सभी अपने संबंधित होमस्क्रीन शॉर्टकट को भी हटाते हैं।" - क्या आप किसी को उद्धृत कर सकते हैं? AFAIK, यह भी संभव नहीं है। यदि आपके पास एक ठोस उदाहरण है जो इस तरह से काम करता है तो मुझे वापस @। – CommonsWare

+3

यदि वे चाहें तो एप्लिकेशन अपने शॉर्टकट को अनइंस्टॉल कर सकते हैं, इसके लिए अनुमति/मंशा है (वे शॉर्टकट भी इंस्टॉल कर सकते हैं।) हालांकि, किसी ऐप को अनइंस्टॉल करने से शॉर्टकट को स्वचालित रूप से साफ़ करना चाहिए। यह आपके द्वारा चलाए जा रहे एंड्रॉइड/लॉन्चर के संस्करण के साथ एक बग हो सकता है। –

+1

@CommonsWare उदाहरण के द्वारा: एस्ट्रो फ़ाइल प्रबंधक के पास होमस्क्रीन में शॉर्टकट जोड़ने के लिए ऐप के अंदर एक विकल्प है। यदि आप ऐसा करना चुनते हैं, और एस्ट्रो ऐप को अनइंस्टॉल करने से चुनते हैं। बनाए गए होमस्क्रीन शॉर्टकट भी हटा दिए जाते हैं। (एचटीसी डिजायर 2.1-यू 1 का उपयोग करना) –

उत्तर

4

मुझे लगता है कि आप दूसरे आशय में इस कार्रवाई डालने की कोशिश कर सकते हैं:, लॉन्चर आइकन होम स्क्रीन पर स्थापित हो जाता "com.android.launcher.action.INSTALL_SHORTCUT"

यह मेरे लिए काम करता है, और मैं जब एप्लिकेशन को अनइंस्टॉल करें, आइकन हटा दिया गया है। इसके साथ कुछ समय संघर्ष कर रहे हैं।

Intent shortcutIntent = new Intent(Intent.ACTION_MAIN); 
shortcutIntent.setClassName(this, this.getClass().getName()); 

Intent intent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT"); 
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); 
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name)); 
Parcelable iconResource = Intent.ShortcutIconResource.fromContext(
      this, R.drawable.launcher_icon); 
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconResource); 
sendBroadcast(intent); 

उम्मीद है कि इससे मदद मिलती है।

2

मुझे भी वही समस्या थी।

अंत में, मुझे पता चला है कि एप्लिकेशन के शॉर्टकट को बनाते समय, एप्लिकेशन के इरादे में Intent.ACTION_MAIN कार्रवाई होनी चाहिए, अन्यथा एप्लिकेशन को अनइंस्टॉल करने पर शॉर्टकट होम स्क्रीन से नहीं हटाया जाएगा (उद्देश्य को स्थापित करने के लिए उपयोग नहीं किया जा रहा है शॉर्टकट, जिसमें com.android.launcher.action.INSTALL_SHORTCUT कार्रवाई है)।

उम्मीद है कि यह मदद करता है।

+1

ऐप में हमेशा एक इरादा-फ़िल्टर के रूप में "android.intent.action.MAIN" कार्रवाई होती है। तो, यह मेरे लिए चाल नहीं था। लेकिन thx। –

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