शॉर्टकट मैनेज करें

शॉर्टकट बनाने के बाद, हो सकता है कि आपको उन्हें लाइफ़टाइम तक मैनेज करना पड़े आपका ऐप्लिकेशन. उदाहरण के लिए, शायद आपको यह तय करके अपने ऐप्लिकेशन को ऑप्टिमाइज़ करना हो कि कैसे अक्सर आपके उपयोगकर्ता आपके शॉर्टकट से खास कार्रवाइयां पूरी करते हैं. दूसरे मामले में, पिन किए गए शॉर्टकट को बंद किया जा सकता है, ताकि पुरानी या अधूरी कार्रवाइयां करना. इसमें बताए गए शॉर्टकट के लिए बातचीत को ट्रैक किया जा सकता है. इसके लिए, हो सकता है कि आपको बेहतर सिग्नल पाने के लिए, शॉर्टकट रैंकिंग.

इस पेज में इन और कई अन्य सामान्य तरीकों के बारे में बताया गया है. शॉर्टकट.

शॉर्टकट का व्यवहार

इन सेक्शन में शॉर्टकट के काम करने के तरीके के बारे में सामान्य जानकारी दी गई है. जिसमें विज़िबिलिटी, डिसप्ले का क्रम, और रैंक शामिल है.

शॉर्टकट किसको दिखे

स्टैटिक शॉर्टकट और डाइनैमिक शॉर्टकट, इसके साथ काम करने वाले लॉन्चर में दिखते हैं या Assistant, जब उपयोगकर्ता किसी ख़ास जेस्चर या बोले गए निर्देश का इस्तेमाल करता है. चालू है इस्तेमाल किया जा सकता है. हाथ के जेस्चर का इस्तेमाल करके, ऐप्लिकेशन के लॉन्चर आइकॉन को दबाकर रखें, लेकिन अन्य लॉन्चर ऐप्लिकेशन पर हाथ का जेस्चर अलग हो सकता है. Google के साथ Assistant की मदद से, शॉर्टकट को Assistant में दिखाया जा सकता है या किसी उपयोगकर्ता से लॉन्च किया जा सकता है बोला गया आदेश.

LauncherApps क्लास, लॉन्चर ऐप्लिकेशन को ऐक्सेस करने के लिए एपीआई उपलब्ध कराती है शॉर्टकट.

लॉन्चर में ही पिन किए गए शॉर्टकट दिखते हैं, इसलिए वे हमेशा दिखते हैं. लॉन्चर से पिन किया गया शॉर्टकट सिर्फ़ इन स्थितियों में हटाया जाता है:

  • उपयोगकर्ता इसे हटा देता है.
  • शॉर्टकट से जुड़े ऐप्लिकेशन को अनइंस्टॉल कर दिया गया है.
  • उपयोगकर्ता सेटिंग > ऐप्लिकेशन और सूचनाएं, ऐप को चुनकर, फिर स्टोरेज > डिवाइस का स्टोरेज खाली करें.

टारगेट शेयर करना के एक सबसेट हैं, जो Android शेयर शीट.

Android Sharesheet का स्क्रीनशॉट
पहली इमेज. Android शेयरशीट. सीधे तौर पर शेयर करने के टारगेट पहली लाइन में दिखते हैं. इसके बाद, रैंक किए गए ऐप्लिकेशन और फिर ऐप्लिकेशन की सूचियां दिखती हैं.

शॉर्टकट के डिसप्ले का क्रम

जब लॉन्चर किसी ऐप्लिकेशन के शॉर्टकट दिखाता है, तो वे इन शॉर्टकट में दिखने चाहिए क्रम:

  1. स्टैटिक शॉर्टकट: ऐसे शॉर्टकट जिनका isDeclaredInManifest() तरीका true दिखाता है.
  2. डाइनैमिक शॉर्टकट: ऐसे शॉर्टकट जिनके ShortcutInfo.isDynamic() तरीका true दिखाता है.

हर शॉर्टकट टाइप में—स्टैटिक और डाइनैमिक—शॉर्टकट क्रम से लगाए जाते हैं ShortcutInfo.getRank के हिसाब से रैंक में बढ़ोतरी. Google Assistant यह भी दिखाता है कि शॉर्टकट को किस रैंक पर दिखाया जाए उपयोगकर्ता.

रैंक में नेगेटिव और एक के बाद एक दिखने वाले पूर्णांक शामिल होते हैं. स्टैटिक शॉर्टकट इनसे रैंक किए जाते हैं फ़ाइल में मिलने वाली वैल्यू उसी क्रम में शामिल होती हैं जिस क्रम में वे आपकी shortcuts.xml फ़ाइल में दिखती हैं. डाइनैमिक के लिए शॉर्टकट, तो आप कॉल करते समय मौजूदा शॉर्टकट की रैंक अपडेट कर सकते हैं updateShortcuts(Context, List) addDynamicShortcuts(Context, List), pushDynamicShortcut(Context, ShortcutInfoCompat) या setDynamicShortcuts(Context, List).

शेयर लक्ष्यों का क्रम कई कारकों पर आधारित होता है, जिनमें पिछले उपयोगकर्ता भी शामिल होते हैं इतिहास, रीसेंसी, फ़्रीक्वेंसी, रैंक संकेत, ऐप्लिकेशन के इस्तेमाल को प्राथमिकता देता है. साथ ही, शेयर करने का शॉर्टकट. इसका इस्तेमाल करके बनाए गए टारगेट शेयर करें शेयर करने के शॉर्टकट एपीआई द्वारा तैयार किए गए शेयर लक्ष्यों पर प्राथमिकता दी जाती है ChooserTargetService जिसे Android 11 में बंद कर दिया गया था. Android 12 और उससे ज़्यादा शेयर टारगेट में काम न करने वाले ChooserTargetService से जनरेट की गई फ़ाइल, अब इसमें नहीं दिखेगी शेयर शीट.

ज़्यादातर लॉन्चर ज़्यादा से ज़्यादा चार शॉर्टकट दिखाते हैं. इनके किसी भी कॉम्बिनेशन के लिए तय किए गए स्टैटिक शॉर्टकट और डाइनैमिक शॉर्टकट के लिए, लॉन्चर ज़्यादा से ज़्यादा दो स्टैटिक शॉर्टकट और दो डाइनैमिक शॉर्टकट. उदाहरण के लिए, अगर चार स्टैटिक शॉर्टकट को परिभाषित करेंगे और प्रोग्राम के हिसाब से तीन डाइनैमिक बनाएं शॉर्टकट के लिए, लॉन्चर पहले दो स्टैटिक शॉर्टकट दिखाता है, और सबसे ज़्यादा रैंक वाले डाइनैमिक शॉर्टकट.

एक से ज़्यादा इंटेंट और गतिविधियां मैनेज करें

अगर आपको यह सुविधा चालू करनी है कि जब आपका उपयोगकर्ता, ऐप्लिकेशन के लिए कई काम करे, शॉर्टकट की मदद से, आप इसे क्रम से चलने वाली गतिविधियों को ट्रिगर करने के लिए कॉन्फ़िगर कर सकते हैं. आप कई इंटेंट असाइन करके ऐसा किया जा सकता है. दूसरा या शॉर्टकट के टाइप के आधार पर इंटेंट फ़्लैग सेट करना.

एक से ज़्यादा इंटेंट असाइन करना

ShortcutInfoCompat.Builder से शॉर्टकट बनाते समय, इनका इस्तेमाल किया जा सकता है setIntent() के बजाय setIntents(). setIntents() को कॉल करने का मतलब है कि जब लोग किसी शॉर्टकट को चुनते हैं, तब आपके ऐप्लिकेशन में कई गतिविधियां लॉन्च की जा सकती हैं. सूची में आखिरी गतिविधि को छोड़कर बाकी सभी गतिविधियों को पिछले स्टैक पर डालना. अगर इसके बाद, जब कोई उपयोगकर्ता डिवाइस के 'वापस जाएं' बटन पर टैप करता है, तो उसे आपके ऐप्लिकेशन में कोई दूसरी गतिविधि दिखती है पर वापस लौटें.

दूसरी गतिविधि से एक गतिविधि शुरू करना

स्टैटिक शॉर्टकट में कस्टम इंटेंट फ़्लैग नहीं हो सकते. स्टैटिक का पहला इंटेंट शॉर्टकट में हमेशा Intent.FLAG_ACTIVITY_NEW_TASK होता है और Intent.FLAG_ACTIVITY_CLEAR_TASK सेट है. इसका मतलब है कि जब आपका ऐप्लिकेशन चलाने पर, ऐप्लिकेशन की सभी मौजूदा गतिविधियां नष्ट हो जाती हैं, तो शॉर्टकट लॉन्च किया गया. अगर आपको ऐसा व्यवहार नहीं करना है, तो ट्रैंपोलिन का इस्तेमाल करें गतिविधि —एक दिखाई न देने वाली गतिविधि जो दूसरी गतिविधि शुरू कर देती है Activity.onCreate(Bundle) वह, Activity.finish() को कॉल करता है:

  1. AndroidManifest.xml फ़ाइल में, एट्रिब्यूट असाइनमेंट शामिल करें android:taskAffinity=" ट्रैक करने में मदद मिलती है.
  2. शॉर्टकट संसाधन फ़ाइल में, इंटेंट का इस्तेमाल करें.

ट्रैम्पोलिन गतिविधियों के बारे में ज़्यादा जानकारी के लिए, एक गतिविधि शुरू करना देखें किसी अन्य खोज क्वेरी से.

इंटेंट फ़्लैग सेट करें

डाइनैमिक शॉर्टकट को Intent फ़्लैग के किसी भी सेट के साथ पब्लिश किया जा सकता है. बेहतर होगा कि Intent.FLAG_ACTIVITY_CLEAR_TASK के साथ-साथ दूसरी जानकारी भी दें फ़्लैग. इसके अलावा, अगर आपके ऐप्लिकेशन के दौरान कोई दूसरा टास्क शुरू किया जाता है, तो तो हो सकता है कि टारगेट गतिविधि न दिखे.

टास्क और इंटेंट फ़्लैग के बारे में ज़्यादा जानने के लिए, टास्क और पिछली गतिविधियां देखें.

शॉर्टकट अपडेट करें

हर ऐप्लिकेशन के लॉन्चर आइकॉन में, ज़्यादा से ज़्यादा कई स्टैटिक और डाइनैमिक हो सकते हैं शॉर्टकट को जोड़ना जो इसके ज़रिए लौटाए गए मान के बराबर है getMaxShortcutCountPerActivity. जितने चाहें उतने पिन किए गए ऐसे शॉर्टकट जिन्हें कोई ऐप्लिकेशन बना सकता है.

जब कोई डाइनैमिक शॉर्टकट पिन किया जाता है, भले ही पब्लिशर उसे डाइनैमिक शॉर्टकट के तौर पर, पिन किया गया शॉर्टकट अब भी दिखेगा. साथ ही, इसे लॉन्च किया जा सकेगा. इससे हमें किसी ऐप्लिकेशन में getMaxShortcutCountPerActivity() से ज़्यादा शॉर्टकट होते हैं.

नीचे दिए गए उदाहरण पर गौर करें. इसमें यह माना जाता है कि getMaxShortcutCountPerActivity(), 4 है:

  1. कोई चैट ऐप्लिकेशन चार डाइनैमिक शॉर्टकट पब्लिश करता है. इनमें चार डाइनैमिक शॉर्टकट दिखते हैं हाल की बातचीत: c1, c2, c3, और c4.
  2. उपयोगकर्ता चारों शॉर्टकट को पिन कर देता है.
  3. इसके बाद, उपयोगकर्ता तीन अतिरिक्त बातचीत शुरू करता है: c5, c6, और c7. कॉन्टेंट बनाने पब्लिशर ऐप्लिकेशन अपने डाइनैमिक शॉर्टकट को फिर से पब्लिश करता है. नया डाइनैमिक शॉर्टकट सूची है: c4, c5, c6, और c7.

ऐप्लिकेशन को c1, c2, और c3 को हटाना होगा, क्योंकि इसमें चार से ज़्यादा वर्ण नहीं दिखाए जा सकते डाइनैमिक शॉर्टकट. हालांकि, c1, c2, और c3 अब भी पिन किए गए शॉर्टकट हैं, उपयोगकर्ता को ऐक्सेस और लॉन्च कर सकते हैं.

तब उपयोगकर्ता कुल सात शॉर्टकट ऐक्सेस कर सकता है, जो प्रकाशक ऐप्लिकेशन में जाकर. ऐसा इसलिए है क्योंकि कुल में अधिकतम और पिन किए गए तीन शॉर्टकट.

  1. यह ऐप्लिकेशन, updateShortcuts(Context, List) का इस्तेमाल करके, इनमें से किसी को भी अपडेट कर सकता है मौजूदा सात शॉर्टकट. उदाहरण के लिए, शॉर्टकट के इस सेट को अपडेट किया जा सकता है जब चैट मिलती है आइकॉन बदल जाते हैं.
  2. आप addDynamicShortcuts(Context, List) और मौजूदा शॉर्टकट को अपडेट करने के setDynamicShortcuts(Context, List) तरीके उसी आईडी के साथ. हालांकि, उनका इस्तेमाल नॉन-डाइनैमिक, पिन किया गया शॉर्टकट, क्योंकि ये दो विधियां दी गई सूचियों को डाइनैमिक शॉर्टकट के शॉर्टकट.

दिखाए जाने के लिए पुश किए जा सकने वाले शॉर्टकट की संख्या की कोई सीमा नहीं है Assistant ऐप्लिकेशन, जैसे कि Google Assistant. pushDynamicShortcut() का इस्तेमाल करें ShortcutManagerCompat Jetpack लाइब्रेरी बनाने और अपडेट करने का तरीका Assistant ऐप्लिकेशन पर इस्तेमाल करने के लिए शॉर्टकट. साथ ही, Google Shortcuts इंटिग्रेशन जोड़ें लाइब्रेरी में जोड़े, ताकि डाइनैमिक लिंक Google पर दिखें Assistant पर टैप करें.

ऐप शॉर्टकट से जुड़े दिशा-निर्देशों और शॉर्टकट अपडेट करने के बारे में ज़्यादा जानने के लिए, शॉर्टकट इस्तेमाल करने के सबसे सही तरीके देखें.

सिस्टम की स्थान-भाषा में होने वाले बदलावों को मैनेज करना

ऐप्लिकेशन को Intent.ACTION_LOCALE_CHANGED ब्रॉडकास्ट, जिसमें सिस्टम में हुए बदलाव की जानकारी दी गई है स्थान-भाषा.

शॉर्टकट के इस्तेमाल को ट्रैक करें

स्टैटिक और डाइनैमिक शॉर्टकट दिखने की स्थितियों का पता लगाने के लिए, लॉन्चर, शॉर्टकट के ऐक्टिवेशन इतिहास की जांच करता है. स्टैटिक शॉर्टकट के लिए, उपयोगकर्ताओं ने आपके ऐप्लिकेशन में कोई खास कार्रवाई कब पूरी की, reportShortcutUsed() तरीके को कॉल करके उसे किसी शॉर्टकट:

  • उपयोगकर्ता दिए गए आईडी के साथ शॉर्टकट चुनता है.
  • उपयोगकर्ता, ऐप्लिकेशन में मैन्युअल तौर पर शॉर्टकट को प्राथमिकता नहीं देनी चाहिए.

आपका ऐप्लिकेशन pushDynamicShortcut() तरीका इस्तेमाल करके उसे शॉर्टकट का आईडी तब पास करते हैं, जब कोई जानकारी मिलती है. इस तरीके से डाइनैमिक शॉर्टकट का इस्तेमाल करने पर Google Assistant जैसे असिस्टेंट ऐप्लिकेशन, लोगों को काम के शॉर्टकट के सुझाव देते हैं. pushDynamicShortcut() तरीका, कॉल किए जाने पर इस्तेमाल के बारे में बताता है. इसलिए, कॉल न करें reportShortcutUsed() तरीके का इस्तेमाल करें.

बातचीत से जुड़े शॉर्टकट के लिए, आउटगोइंग के लिए इस्तेमाल को ट्रैक करना ज़रूरी है को ऐक्सेस करने की सुविधा मिलती है. ज़्यादा जानकारी के लिए, लोगों के लिए सबसे सही तरीके देखें और बातचीत.

शॉर्टकट बंद करें

ऐप्लिकेशन और उसके उपयोगकर्ता, डिवाइस के लॉन्चर पर शॉर्टकट पिन कर सकते हैं. इसलिए, पिन किए गए ये शॉर्टकट, उपयोगकर्ताओं को आपके ऐप्लिकेशन में होने वाली कार्रवाइयों पर ले जा सकते हैं जो पुरानी हैं या अब मौजूद नहीं हैं. इस स्थिति से निपटने के लिए, उन शॉर्टकट को बंद करें जिन्हें आपको कॉल करके उपयोगकर्ताओं को नहीं चुनने देना है disableShortcuts, जो स्टैटिक से बताए गए शॉर्टकट को हटा देता है और डाइनैमिक शॉर्टकट की सूची बनाकर, इन शॉर्टकट की पिन की गई कॉपी बंद कर देता है. आपने लोगों तक पहुंचाया मुफ़्त में इस तरीके का ओवरलोडेड वर्शन इस्तेमाल कर सकता है, जो CharSequence को कस्टम गड़बड़ी के मैसेज के तौर पर सबमिट करें. इसके बाद गड़बड़ी का वह मैसेज दिखेगा जब उपयोगकर्ता किसी बंद किए गए शॉर्टकट को लॉन्च करने की कोशिश करते हैं.

अनुरोध संख्या सीमित करना

setDynamicShortcuts(), addDynamicShortcuts() का इस्तेमाल करते समय या updateShortcuts() तरीके का इस्तेमाल करते हैं, तो हो सकता है कि आप इन तरीकों को सिर्फ़ बैकग्राउंड में चलने वाले ऐप्लिकेशन में कितनी बार —ऐसा ऐप्लिकेशन जिसमें कोई गतिविधि न हुई हो या में दिखाई गई सेवाएं शामिल हैं. जितनी बार किया जा सकता है उसकी संख्या इन तरीकों को दर सीमित करना कहा जाता है. यह सुविधा, वीडियो को ShortcutManagerCompat, जो डिवाइस संसाधनों का बहुत ज़्यादा इस्तेमाल करते हैं.

अनुरोध संख्या सीमित करने की सुविधा चालू होने पर, isRateLimitingActive() 'सही' दिखाता है. हालांकि, कुछ इवेंट के दौरान अनुरोध संख्या सीमित करने की सुविधा रीसेट हो जाती है. इससे बैकग्राउंड में चलने वाले ऐप्लिकेशन भी रीसेट हो जाते हैं जब तक किराये की तय सीमा पूरी नहीं हो जाती, तब तक ShortcutManager तरीकों को कॉल किया जा सकता है. ये इवेंट में ये शामिल हैं:

  • कोई ऐप्लिकेशन फ़ोरग्राउंड पर आ जाता है.
  • सिस्टम की स्थान-भाषा बदल जाती है.
  • उपयोगकर्ता किसी सूचना पर इनलाइन जवाब की कार्रवाई करता है.

अगर डेवलपमेंट या टेस्टिंग के दौरान रेट सीमित होने की समस्या आती है, तो डेवलपर के लिए सेटिंग और टूल > ShortcutManager दर सीमित करना डिवाइस के सेटिंग का विकल्प भी चुना जा सकता है या adb में ये निर्देश दिए जा सकते हैं:

$ adb shell cmd shortcut reset-throttling [ --user your-user-id ]

बैकअप और पहले जैसा करने की सुविधा

जब उपयोगकर्ता आपके ऐप्लिकेशन पर बैक अप लेने और पहले जैसा करने की कार्रवाई करते हैं, तब उन्हें ऐसा करने की अनुमति दी जा सकती है android:allowBackup="true" को शामिल करके डिवाइस बदल रहे हैं विशेषता असाइनमेंट से जुड़ी ज़रूरी शर्तें पूरी करता है. अगर बैकअप लेने और डेटा वापस पाने की सुविधा काम करती है, तो ऐप शॉर्टकट के बारे में इन बातों का ध्यान रखें:

  • स्टैटिक शॉर्टकट अपने-आप फिर से पब्लिश होते हैं, लेकिन उपयोगकर्ता के बाद ही आपके ऐप्लिकेशन को किसी नए डिवाइस पर फिर से इंस्टॉल करता है.
  • डाइनैमिक शॉर्टकट का बैक अप नहीं लिया जाता. इसलिए, इसे दोबारा पब्लिश करने के लिए, अपने ऐप्लिकेशन में लॉजिक शामिल करें जब कोई उपयोगकर्ता किसी नए डिवाइस पर आपका ऐप्लिकेशन खोलता है, तो उन्हें दिखाया जाता है.
  • पिन किए गए शॉर्टकट डिवाइस के लॉन्चर में अपने-आप वापस आ जाते हैं. हालांकि, सिस्टम, पिन किए गए शॉर्टकट से जुड़े आइकॉन का बैक अप नहीं लेता. इसलिए, सेव करें आपके पिन किए गए शॉर्टकट' आपके ऐप्लिकेशन में इमेज मौजूद होनी चाहिए, ताकि उन्हें आसानी से वापस लाया जा सके नया डिवाइस.

नीचे दिया गया कोड स्निपेट आपके ऐप्लिकेशन के डाइनैमिक को वापस लाने का सबसे अच्छा तरीका बताता है शॉर्टकट देखने के लिए इस लिंक पर क्लिक करें और यह कैसे देखें कि आपके ऐप्लिकेशन के पिन किए गए शॉर्टकट सुरक्षित हैं या नहीं:

Kotlin

class MyMainActivity : Activity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        if (ShortcutManagerCompat.dynamicShortcuts.size == 0) {
            // Application restored. Re-publish dynamic shortcuts.
            if (ShortcutManagerCompat.pinnedShortcuts.size > 0) {
                // Pinned shortcuts are restored. Use updateShortcuts() to make
                // sure they contain up-to-date information.
            }

        }
    }
    // ...
}

Java

public class MainActivity extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if (ShortcutManagerCompat.getDynamicShortcuts().size() == 0) {
            // Application restored. Re-publish dynamic shortcuts.
            if (ShortcutManagerCompat.getPinnedShortcuts().size() > 0) {
                // Pinned shortcuts are restored. Use pdateShortcuts() to make
                // sure they contain up-to-date information.
            }
        }
    }
    // ...
}