शॉर्टकट की मदद से, उपयोगकर्ताओं को खास तरह का कॉन्टेंट दिखाया जाता है. इससे उन्हें आपके ऐप्लिकेशन के कुछ हिस्सों को तुरंत ऐक्सेस करने में मदद मिलती है.
शॉर्टकट की मदद से कॉन्टेंट डिलीवर करने का तरीका, आपके इस्तेमाल के उदाहरण पर निर्भर करता है. साथ ही, यह भी इस बात पर निर्भर करता है कि शॉर्टकट का कॉन्टेक्स्ट, ऐप्लिकेशन पर आधारित है या उपयोगकर्ता पर. स्टैटिक शॉर्टकट का कॉन्टेक्स्ट नहीं बदलता है, जबकि डाइनैमिक शॉर्टकट का कॉन्टेक्स्ट लगातार बदलता रहता है. हालांकि, दोनों ही मामलों में कॉन्टेक्स्ट को आपका ऐप्लिकेशन तय करता है. जब कोई उपयोगकर्ता यह चुनता है कि आपका ऐप्लिकेशन उसे कॉन्टेंट कैसे डिलीवर करे, तो कॉन्टेक्स्ट को उपयोगकर्ता तय करता है. जैसे, पिन किए गए शॉर्टकट के मामले में. यहां दिए गए उदाहरणों में, हर तरह के शॉर्टकट के इस्तेमाल के कुछ उदाहरण दिए गए हैं:
- स्टैटिक शॉर्टकट उन ऐप्लिकेशन के लिए सबसे सही होते हैं जो किसी उपयोगकर्ता के ऐप्लिकेशन से इंटरैक्ट करने के दौरान, एक जैसे स्ट्रक्चर का इस्तेमाल करके कॉन्टेंट से लिंक होते हैं. ज़्यादातर लॉन्चर एक बार में सिर्फ़ चार शॉर्टकट दिखाते हैं. इसलिए, स्टैटिक शॉर्टकट किसी रूटीन टास्क को एक जैसे तरीके से पूरा करने के लिए फ़ायदेमंद होते हैं. जैसे, अगर उपयोगकर्ता को किसी खास तरीके से अपना कैलेंडर या ईमेल देखना है.
- डाइनैमिक शॉर्टकट का इस्तेमाल, ऐप्लिकेशन में ऐसी कार्रवाइयों के लिए किया जाता है जो कॉन्टेक्स्ट के हिसाब से होती हैं. कॉन्टेक्स्ट के हिसाब से काम करने वाले शॉर्टकट, ऐप्लिकेशन में उपयोगकर्ताओं की कार्रवाइयों के हिसाब से बनाए जाते हैं. उदाहरण के लिए, अगर आपको ऐसा गेम बनाना है जिसमें उपयोगकर्ता, गेम लॉन्च करने पर अपने मौजूदा लेवल से गेम शुरू कर सके, तो आपको शॉर्टकट को बार-बार अपडेट करना होगा. डाइनैमिक शॉर्टकट का इस्तेमाल करके, उपयोगकर्ता के हर लेवल पूरा करने पर शॉर्टकट को अपडेट किया जा सकता है.
- पिन किए गए शॉर्टकट का इस्तेमाल, उपयोगकर्ता की ओर से की जाने वाली खास कार्रवाइयों के लिए किया जाता है. उदाहरण के लिए, कोई उपयोगकर्ता किसी वेबसाइट को लॉन्चर में पिन करना चाहता है. यह फ़ायदेमंद है, क्योंकि इससे उपयोगकर्ता को अपनी पसंद के मुताबिक कार्रवाई करने की सुविधा मिलती है. जैसे, एक ही चरण में वेबसाइट पर जाना. यह कार्रवाई, ब्राउज़र के डिफ़ॉल्ट इंस्टेंस का इस्तेमाल करने की तुलना में ज़्यादा तेज़ी से होती है.
स्टैटिक शॉर्टकट बनाना
स्टैटिक शॉर्टकट, आपके ऐप्लिकेशन में सामान्य कार्रवाइयों के लिंक देते हैं. ये कार्रवाइयां, आपके ऐप्लिकेशन के मौजूदा वर्शन के पूरे जीवनकाल में एक जैसी होनी चाहिए. स्टैटिक शॉर्टकट के लिए, भेजे गए मैसेज देखना, अलार्म सेट करना, और दिन भर की कसरत की गतिविधि दिखाना जैसे विकल्प अच्छे हैं.
स्टैटिक शॉर्टकट बनाने के लिए, यह तरीका अपनाएं:
- अपने ऐप्लिकेशन की
AndroidManifest.xmlफ़ाइल में, उस गतिविधि को ढूंढें जिसके इंटेंट फ़िल्टर,android.intent.action.MAINऐक्शन औरandroid.intent.category.LAUNCHERकैटगरी पर सेट किए गए हैं. इस गतिविधि में एक
<meta-data>एलिमेंट जोड़ें. यह उस संसाधन फ़ाइल को रेफ़रंस करता है जहां ऐप्लिकेशन के शॉर्टकट तय किए गए हैं:<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myapplication"> <application ... > <activity android:name="Main"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" /> </activity> </application> </manifest>res/xml/shortcuts.xmlनाम की नई संसाधन फ़ाइल बनाएं.नई संसाधन फ़ाइल में,
<shortcuts>रूट एलिमेंट जोड़ें. इसमें<shortcut>एलिमेंट की सूची शामिल होती है. हर<shortcut>एलिमेंट में, स्टैटिक शॉर्टकट के बारे में जानकारी शामिल करें. जैसे, उसका आइकॉन, ब्यौरे के लेबल, और ऐप्लिकेशन में लॉन्च होने वाले इंटेंट:<shortcuts xmlns:android="http://schemas.android.com/apk/res/android"> <shortcut android:shortcutId="compose" android:enabled="true" android:icon="@drawable/compose_icon" android:shortcutShortLabel="@string/compose_shortcut_short_label1" android:shortcutLongLabel="@string/compose_shortcut_long_label1" android:shortcutDisabledMessage="@string/compose_disabled_message1"> <intent android:action="android.intent.action.VIEW" android:targetPackage="com.example.myapplication" android:targetClass="com.example.myapplication.Main" /> <!-- If your shortcut is associated with multiple intents, include them here. The last intent in the list determines what the user sees when they launch this shortcut. --> <categories android:name="android.shortcut.conversation" /> <capability-binding android:key="actions.intent.CREATE_MESSAGE" /> </shortcut> <!-- Specify more shortcuts here. --> </shortcuts>
एट्रिब्यूट की वैल्यू को पसंद के मुताबिक बनाना
यहां दी गई सूची में, स्टैटिक शॉर्टकट में मौजूद अलग-अलग एट्रिब्यूट के बारे में बताया गया है. android:shortcutId और android:shortcutShortLabel एट्रिब्यूट के लिए वैल्यू सबमिट करें. अन्य सभी वैल्यू वैकल्पिक हैं.
android:shortcutIdयह एक स्ट्रिंग लिटरल है. यह तब शॉर्टकट दिखाता है, जब कोई
ShortcutManagerऑब्जेक्ट उस पर कार्रवाइयां करता है.android:shortcutShortLabelकम शब्दों में ऐसा वाक्यांश जो शॉर्टकट के मकसद के बारे में बताता हो. जब भी हो सके, इस छोटे ब्यौरे को 10 वर्णों तक सीमित रखें.
ज़्यादा जानकारी के लिए,
setShortLabel()देखें.android:shortcutLongLabelयह एक ऐसा वाक्यांश होता है जिसमें शॉर्टकट के मकसद के बारे में ज़्यादा जानकारी दी जाती है. अगर जगह उपलब्ध है, तो लॉन्चर
android:shortcutShortLabelके बजाय यह वैल्यू दिखाता है. अगर हो सके, तो इस लंबी जानकारी में 25 से ज़्यादा वर्ण इस्तेमाल न करें.ज़्यादा जानकारी के लिए,
setLongLabel()देखें.android:shortcutDisabledMessageजब उपयोगकर्ता बंद किए गए शॉर्टकट को लॉन्च करने की कोशिश करता है, तब यह मैसेज, काम करने वाले लॉन्चर में दिखता है. मैसेज में, उपयोगकर्ता को यह बताना ज़रूरी है कि शॉर्टकट क्यों बंद किया गया है. अगर
android:enabledtrueहै, तो इस एट्रिब्यूट की वैल्यू का कोई असर नहीं पड़ता.android:enabledइस कुकी से यह तय होता है कि उपयोगकर्ता, शॉर्टकट के साथ इंटरैक्ट कर सकता है या नहीं. इसके लिए, उसे ऐसे लॉन्चर का इस्तेमाल करना होगा जो इस सुविधा के साथ काम करता हो.
android:enabledकी डिफ़ॉल्ट वैल्यूtrueहोती है. अगर इसेfalseपर सेट किया जाता है, तोandroid:shortcutDisabledMessageसेट करें. इसमें बताएं कि शॉर्टकट को बंद क्यों किया जा रहा है. अगर आपको लगता है कि इस तरह का मैसेज देने की ज़रूरत नहीं है, तो एक्सएमएल फ़ाइल से शॉर्टकट को पूरी तरह से हटा दें.android:iconबिटमैप या अनुकूली आइकॉन, जिसका इस्तेमाल लॉन्चर तब करता है, जब वह उपयोगकर्ता को शॉर्टकट दिखाता है. यह वैल्यू, किसी इमेज का पाथ या इमेज वाली रिसॉर्स फ़ाइल हो सकती है. परफ़ॉर्मेंस और एकरूपता को बेहतर बनाने के लिए, जब भी हो सके अडैप्टिव आइकॉन का इस्तेमाल करें.
इनर एलिमेंट कॉन्फ़िगर करना
किसी ऐप्लिकेशन के स्टैटिक शॉर्टकट की जानकारी देने वाली एक्सएमएल फ़ाइल में, हर <shortcut> एलिमेंट के अंदर ये एलिमेंट इस्तेमाल किए जा सकते हैं. आपको हर स्टैटिक शॉर्टकट के लिए, intent इनर एलिमेंट शामिल करना ज़रूरी है.
intentजब उपयोगकर्ता शॉर्टकट चुनता है, तब सिस्टम कौनसी कार्रवाई शुरू करता है. इस इंटेंट के लिए,
android:actionएट्रिब्यूट की वैल्यू देना ज़रूरी है.एक शॉर्टकट के लिए कई इंटेंट दिए जा सकते हैं. ज़्यादा जानकारी के लिए, एक से ज़्यादा इंटेंट और गतिविधियां मैनेज करना, इंटेंट सेट करना, और
TaskStackBuilderक्लास का रेफ़रंस देखें.categoriesयह आपके ऐप्लिकेशन के शॉर्टकट से की जाने वाली कार्रवाइयों को ग्रुप करता है. जैसे, नए चैट मैसेज बनाना.
शॉर्टकट की कैटगरी की सूची देखने के लिए,
ShortcutInfoक्लास रेफ़रंस देखें.capability-bindingयह शॉर्टकट से जुड़ी क्षमता के बारे में बताता है.
पिछले उदाहरण में, शॉर्टकट को
CREATE_MESSAGEके लिए तय की गई सुविधा से लिंक किया गया है. यह ऐप्लिकेशन कार्रवाइयां का बिल्ट-इन इंटेंट है. इस केपबिलिटी बाइंडिंग के ज़रिए, लोग Google Assistant को बोलकर दिए जाने वाले निर्देशों का इस्तेमाल करके, शॉर्टकट को शुरू कर सकते हैं.
डाइनैमिक शॉर्टकट बनाना
डाइनैमिक शॉर्टकट, आपके ऐप्लिकेशन में मौजूद खास और कॉन्टेक्स्ट के हिसाब से कार्रवाइयों के लिंक उपलब्ध कराते हैं. ये कार्रवाइयां, ऐप्लिकेशन के इस्तेमाल के दौरान और ऐप्लिकेशन के चालू होने पर बदल सकती हैं. डाइनैमिक शॉर्टकट का इस्तेमाल इन कामों के लिए किया जा सकता है: किसी व्यक्ति को कॉल करना, किसी जगह पर नेविगेट करना, और उपयोगकर्ता के आखिरी सेव पॉइंट से गेम लोड करना. किसी बातचीत को खोलने के लिए, डाइनैमिक शॉर्टकट का भी इस्तेमाल किया जा सकता है.
ShortcutManagerCompat Jetpack लाइब्रेरी, ShortcutManager एपीआई के लिए एक हेल्पर है. इसकी मदद से, अपने ऐप्लिकेशन में डाइनैमिक शॉर्टकट मैनेज किए जा सकते हैं. ShortcutManagerCompat लाइब्रेरी का इस्तेमाल करने से, बॉयलरप्लेट कोड कम हो जाता है. साथ ही, यह पक्का करने में मदद मिलती है कि आपके शॉर्टकट, Android के सभी वर्शन पर एक जैसा काम करें. डाइनैमिक शॉर्टकट को पुश करने के लिए भी इस लाइब्रेरी की ज़रूरत होती है, ताकि वे Google Shortcuts Integration Library के साथ, Assistant जैसे Google के प्लैटफ़ॉर्म पर दिख सकें.
ShortcutManagerCompat एपीआई की मदद से, आपका ऐप्लिकेशन डाइनैमिक शॉर्टकट के साथ ये कार्रवाइयां कर सकता है:
- पुश और अपडेट करें: डाइनैमिक शॉर्टकट पब्लिश और अपडेट करने के लिए,
pushDynamicShortcut()का इस्तेमाल करें. अगर एक ही आईडी वाले डाइनैमिक या पिन किए गए शॉर्टकट पहले से मौजूद हैं, तो हर बदलाव किए जा सकने वाले शॉर्टकट अपडेट हो जाते हैं. - हटाएं:
removeDynamicShortcuts()का इस्तेमाल करके, डाइनैमिक शॉर्टकट का सेट हटाएं.removeAllDynamicShortcuts()का इस्तेमाल करके, सभी डाइनैमिक शॉर्टकट हटाएं.
शॉर्टकट पर कार्रवाइयां करने के बारे में ज़्यादा जानने के लिए, शॉर्टकट मैनेज करना और ShortcutManagerCompat रेफ़रंस देखें.
डाइनैमिक शॉर्टकट बनाने और उसे अपने ऐप्लिकेशन से जोड़ने का उदाहरण यहां दिया गया है:
val shortcut = ShortcutInfoCompat.Builder(context, "id1") .setShortLabel("Website") .setLongLabel("Open the website") .setIcon(IconCompat.createWithResource(context, R.drawable.icon_website)) .setIntent( Intent( Intent.ACTION_VIEW, Uri.parse("https://www.mysite.example.com/") ) ) .build() ShortcutManagerCompat.pushDynamicShortcut(context, shortcut)
Google Shortcuts Integration Library जोड़ना
Google Shortcuts Integration Library, Jetpack की एक ऐसी लाइब्रेरी है जिसका इस्तेमाल करना ज़रूरी नहीं है. इसकी मदद से, डाइनैमिक शॉर्टकट को पुश किया जा सकता है. ये शॉर्टकट, Android के प्लैटफ़ॉर्म पर दिखाए जा सकते हैं. जैसे, लॉन्चर और Google के प्लैटफ़ॉर्म. इस लाइब्रेरी का इस्तेमाल करने से, उपयोगकर्ताओं को आपके ऐप्लिकेशन में मौजूद शॉर्टकट ढूंढने में मदद मिलती है. इससे वे किसी खास कॉन्टेंट को तुरंत ऐक्सेस कर पाते हैं या कार्रवाइयों को फिर से चला पाते हैं.
इस लाइब्रेरी की मदद से पुश किए गए डाइनैमिक शॉर्टकट, हर डिवाइस के हिसाब से लागू होने वाली शॉर्टकट की सीमाओं के दायरे में नहीं आते. इससे आपका ऐप्लिकेशन, उपयोगकर्ता के ऐप्लिकेशन में कोई कार्रवाई पूरी करने पर, हर बार एक शॉर्टकट पुश कर सकता है. इस तरह से बार-बार शॉर्टकट पुश करने से, Google को उपयोगकर्ता के इस्तेमाल के पैटर्न को समझने में मदद मिलती है. साथ ही, वह उन्हें संदर्भ के हिसाब से काम के शॉर्टकट सुझा सकता है.
उदाहरण के लिए, फ़िटनेस ट्रैक करने वाले ऐप्लिकेशन से पुश किए गए शॉर्टकट से Assistant को यह जानकारी मिल सकती है कि कोई उपयोगकर्ता आम तौर पर हर सुबह दौड़ता है. इसलिए, जब उपयोगकर्ता सुबह अपना फ़ोन उठाता है, तो Assistant उसे "दौड़ शुरू करें" शॉर्टकट का सुझाव दे सकती है.
Google Shortcuts Integration Library, खुद कोई ऐसी सुविधा नहीं देती है जिससे किसी डिवाइस को कंट्रोल किया जा सके. इस लाइब्रेरी को अपने ऐप्लिकेशन में जोड़ने से, Google के प्लैटफ़ॉर्म पर आपके ऐप्लिकेशन के शॉर्टकट दिखते हैं. ये शॉर्टकट, ShortcutManagerCompat का इस्तेमाल करके पुश किए जाते हैं.
अपने ऐप्लिकेशन में इस लाइब्रेरी का इस्तेमाल करने के लिए, Google Shortcuts Integration Library और ShortcutManagerCompat के लिए डिपेंडेंसी को अपनी app/build.gradle या app/build.gradle.kts फ़ाइल में जोड़ें:
Kotlin
dependencies {
implementation("androidx.core:core:1.6.0")
implementation("androidx.core:core-google-shortcuts:1.0.0")
}
Groovy
dependencies {
implementation "androidx.core:core:1.6.0"
implementation 'androidx.core:core-google-shortcuts:1.0.0'
}
Android प्रोजेक्ट में लाइब्रेरी डिपेंडेंसी जोड़ने के बाद, आपका ऐप्लिकेशन ShortcutManagerCompat से pushDynamicShortcut() तरीके का इस्तेमाल कर सकता है. इससे, डाइनैमिक शॉर्टकट पुश किए जा सकते हैं. ये शॉर्टकट, लॉन्चर और Google के अन्य प्लैटफ़ॉर्म पर दिख सकते हैं.
पिन किए गए शॉर्टकट बनाना
Android 8.0 (एपीआई लेवल 26) और इसके बाद के वर्शन पर, पिन किए गए शॉर्टकट बनाए जा सकते हैं. स्टैटिक और डाइनैमिक शॉर्टकट के उलट, पिन किए गए शॉर्टकट, काम करने वाले लॉन्चर में अलग-अलग आइकॉन के तौर पर दिखते हैं. पहली इमेज में, इन दोनों तरह के शॉर्टकट के बीच का अंतर दिखाया गया है.
अपने ऐप्लिकेशन का इस्तेमाल करके, किसी शॉर्टकट को काम करने वाले लॉन्चर में पिन करने के लिए, यह तरीका अपनाएं:
isRequestPinShortcutSupported()का इस्तेमाल करके यह पुष्टि करें कि डिवाइस के डिफ़ॉल्ट लॉन्चर में, ऐप्लिकेशन में शॉर्टकट पिन करने की सुविधा काम करती है.एक
ShortcutInfoCompatऑब्जेक्ट बनाएं. इसमें आईडी, इंटेंट, और शॉर्टकट के लिए छोटा लेबल शामिल हो. अगर शॉर्टकट मौजूद है, तो मौजूदा शॉर्टकट के आईडी का इस्तेमाल करें. सिस्टम, शॉर्टकट से जुड़ी अन्य सभी जानकारी को अपने-आप ढूंढकर पिन कर देता है.requestPinShortcut()को कॉल करके, डिवाइस के लॉन्चर में शॉर्टकट पिन करें. इस प्रोसेस के दौरान,PendingIntentऑब्जेक्ट पास किया जा सकता है. यह ऑब्जेक्ट, आपके ऐप्लिकेशन को सिर्फ़ तब सूचना देता है, जब शॉर्टकट पिन हो जाता है.शॉर्टकट पिन करने के बाद, आपका ऐप्लिकेशन
updateShortcuts()तरीके का इस्तेमाल करके, उसके कॉन्टेंट को अपडेट कर सकता है. ज़्यादा जानकारी के लिए, शॉर्टकट अपडेट करना लेख पढ़ें.
यहां दिए गए कोड स्निपेट में, पिन किया गया शॉर्टकट बनाने का तरीका बताया गया है:
if (ShortcutManagerCompat.isRequestPinShortcutSupported(context)) { // Enable the existing shortcut with the ID "my-shortcut". val pinShortcutInfo = ShortcutInfoCompat.Builder(context, "my-shortcut") .setShortLabel("Website") .setIntent( Intent( Intent.ACTION_VIEW, Uri.parse("https://www.mysite.example.com/") ) ) .build() // Create the PendingIntent object only if your app needs to be notified // that the user let the shortcut be pinned. If the pinning operation fails, // your app isn't notified. Assume here that the app implements a method // called createShortcutResultIntent() that returns a broadcast intent. val pinnedShortcutCallbackIntent = ShortcutManagerCompat.createShortcutResultIntent(context, pinShortcutInfo) // Configure the intent so that your app's broadcast receiver gets the // callback successfully. For details, see PendingIntent.getBroadcast(). val successCallback = PendingIntent.getBroadcast( context, /* request code */ 0, pinnedShortcutCallbackIntent, /* flags */ PendingIntent.FLAG_IMMUTABLE ) ShortcutManagerCompat.requestPinShortcut( context, pinShortcutInfo, successCallback.intentSender ) }
कस्टम शॉर्टकट गतिविधि बनाना
आपके पास एक खास गतिविधि बनाने का विकल्प भी होता है. इससे उपयोगकर्ताओं को शॉर्टकट बनाने में मदद मिलती है. इसमें कस्टम विकल्प और पुष्टि करने वाला बटन भी शामिल होता है. दूसरी इमेज में, Gmail ऐप्लिकेशन में इस तरह की गतिविधि का उदाहरण दिखाया गया है.
अपने ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल में, गतिविधि के <intent-filter> एलिमेंट में ACTION_CREATE_SHORTCUT जोड़ें. इस एलान से, उपयोगकर्ता के शॉर्टकट बनाने की कोशिश करने पर यह व्यवहार सेट अप होता है:
- सिस्टम, आपके ऐप्लिकेशन की खास गतिविधि शुरू करता है.
- उपयोगकर्ता, शॉर्टकट के लिए विकल्प सेट करता है.
- उपयोगकर्ता, पुष्टि करने वाला बटन चुनता है.
- आपका ऐप्लिकेशन,
createShortcutResultIntent()तरीके का इस्तेमाल करके शॉर्टकट बनाता है. यह तरीका एकIntentदिखाता है. आपका ऐप्लिकेशन,setResult()का इस्तेमाल करके, इसे पिछली गतिविधि पर वापस भेजता है. - ऐप्लिकेशन के कॉल
finish(), गतिविधि पर आधारित होते हैं. इनका इस्तेमाल, पसंद के मुताबिक बनाए गए शॉर्टकट बनाने के लिए किया जाता है.
इसी तरह, आपका ऐप्लिकेशन इंस्टॉल होने के बाद या पहली बार लॉन्च होने पर, उपयोगकर्ताओं को होम स्क्रीन पर पिन किए गए शॉर्टकट जोड़ने के लिए कहा जा सकता है. यह तरीका असरदार है, क्योंकि इससे आपके उपयोगकर्ताओं को अपने सामान्य वर्कफ़्लो के हिस्से के तौर पर शॉर्टकट बनाने में मदद मिलती है.
शॉर्टकट आज़माना
अपने ऐप्लिकेशन के शॉर्टकट की जांच करने के लिए, उसे ऐसे डिवाइस पर इंस्टॉल करें जिसमें शॉर्टकट की सुविधा काम करती हो. इसके बाद, ये कार्रवाइयां करें:
- अपने ऐप्लिकेशन के लॉन्चर आइकॉन को दबाकर रखें. इससे आपको ऐप्लिकेशन के लिए तय किए गए शॉर्टकट दिखेंगे.
- किसी शॉर्टकट को डिवाइस के लॉन्चर में पिन करने के लिए, उसे खींचकर छोड़ें.