शॉर्टकट.xml बनाएं

अपने ऐप्लिकेशन में मौजूद फ़ंक्शन और लागू करने के लिए उससे जुड़े बिल्ट-इन इंटेंट (बीआईआई) की पहचान करने के बाद, उन बीआईआई का एलान करें जिनके साथ आपका फ़ंक्शन काम करता है. इसके लिए, shortcuts.xml संसाधन फ़ाइल में capability एलिमेंट तय करें. बीआईआई को capability के तौर पर एलान करने से, आपके ऐप्लिकेशन में उस सिमैंटिक इंटेंट के लिए काम करने की सुविधा रजिस्टर हो जाती है. साथ ही, Google Assistant की मदद से, वॉइस क्वेरी के इंटेंट पूरा होने की सुविधा भी चालू हो जाती है.

Assistant, उपयोगकर्ता की क्वेरी से पैरामीटर निकालने के लिए, नैचुरल लैंग्वेज प्रोसेसिंग का इस्तेमाल करती है. बिल्ट-इन इंटेंट रेफ़रंस में उन फ़ील्ड की सूची होती है जिन्हें हर बीआईआई, उपयोगकर्ता की क्वेरी से निकाल सकता है. उदाहरण के लिए, अगर कोई उपयोगकर्ता आपके ऐप्लिकेशन में [actions.intent.GET_FOOD_OBSERVATION][] सुविधा का इस्तेमाल करने के लिए, "Ok Google, ExampleApp से पूछो कि मैंने पिछले शुक्रवार को लंच में क्या खाया था" कहता है, तो Assistant उपयोगकर्ता के अनुरोध से ये बीआईआई पैरामीटर निकालती है:

  • foodObservation.forMeal = "https://schema.googleapis.com/MealTypeLunch"
  • foodObservation.startTime = "06-09-2024T00:00:00"
  • foodObservation.endTime = "06-09-2024T23:59:59"

Assistant, BII पैरामीटर को capability में बताए गए intent पर पास करता है. किसी कैपेबिलिटी में एक या उससे ज़्यादा intent एलिमेंट तय किए जा सकते हैं, ताकि उपयोगकर्ता अलग-अलग तरीकों से बीआईआई को ट्रिगर कर सके. उदाहरण के लिए, ऐसे फ़ुलफ़िलमेंट intent को तय किया जा सकता है जिसके लिए ऊपर दिए गए उदाहरण में, दोनों बीआईआई पैरामीटर की ज़रूरत हो. इसके बाद, एक दूसरा इंटेंट तय किया जा सकता है. इसके लिए, एक BII पैरामीटर foodObservation.forMeal की ज़रूरत होती है. यह पैरामीटर, किसी खास दिन के सभी खान-पान की जानकारी देता है. जैसे, "Ok Google, ExampleApp से पूछो कि मैंने लंच में क्या खाया."

खास जानकारी

ऐप्लिकेशन ऐक्शन को कॉन्फ़िगर करने के लिए, अपने ऐप्लिकेशन प्रोजेक्ट की res/xml डायरेक्ट्री में मौजूद shortcuts.xml फ़ाइल का इस्तेमाल करें. इसके बाद, अपने ऐप्लिकेशन मेनिफ़ेस्ट में shortcuts.xml का रेफ़रंस बनाएं. अपने ऐप्लिकेशन मेनिफ़ेस्ट में shortcuts.xml का रेफ़रंस जोड़ने के लिए, यह तरीका अपनाएं:

  1. अपने ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल (AndroidManifest.xml) में, ऐसी गतिविधि ढूंढें जिसके इंटेंट फ़िल्टर, android.intent.action.MAIN ऐक्शन और android.intent.category.LAUNCHER कैटगरी पर सेट हों.

  2. AndroidManifest.xml में shortcuts.xml का रेफ़रंस जोड़ने के लिए, Activity में <meta-data> टैग का इस्तेमाल करें. इस टैग में MAIN और LAUNCHER, दोनों के लिए इंटेंट फ़िल्टर होने चाहिए. ऐसा करने के लिए, यह तरीका अपनाएं:

    <meta-data
       android:name="android.app.shortcuts"
       android:resource="@xml/shortcuts" />
    

ऊपर दिए गए उदाहरण में, APK में xml/shortcuts.xml फ़ाइल के लिए एक्सएमएल रिसॉर्स का एलान किया गया है. शॉर्टकट कॉन्फ़िगर करने के बारे में ज़्यादा जानने के लिए, Android डेवलपर दस्तावेज़ में स्टैटिक शॉर्टकट बनाना देखें.

shortcuts.xml में ऐप्लिकेशन ऐक्शन की सुविधाओं को तय करते समय, कंपाइल करने से जुड़ी गड़बड़ियों से बचने के लिए, आपके Android प्रोजेक्ट में Jetpack लाइब्रेरी androidx.core:core:1.6.0 (या इसके बाद की) ज़रूरी है. ज़्यादा जानकारी के लिए, Android Jetpack का इस्तेमाल शुरू करना देखें.

स्टैटिक शॉर्टकट

अपने capability की जानकारी देते समय, shortcuts.xml में स्टैटिक shortcut एलिमेंट का एलान किया जा सकता है, ताकि उसके फ़ंक्शन का इस्तेमाल किया जा सके. Google Play Console पर रिलीज़ अपलोड करने पर, Assistant स्टैटिक शॉर्टकट को इंजाइज़ कर लेती है. स्टैटिक शॉर्टकट सिर्फ़ नई रिलीज़ बनाकर बनाए और अपडेट किए जा सकते हैं. इसलिए, ये आपके ऐप्लिकेशन में सामान्य गतिविधियों और कॉन्टेंट को हाइलाइट करने के लिए सबसे ज़्यादा काम के होते हैं.

स्टैटिक शॉर्टकट की मदद से, ऐप्लिकेशन ऐक्शन की ये सुविधाएं चालू की जा सकती हैं:

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

    इन शॉर्टकट में intent, shortLabel, और longLabel एट्रिब्यूट होते हैं. इनकी मदद से, Assistant जैसे ऐप्लिकेशन या Android लॉन्चर पर किसी ऐप्लिकेशन के आइकॉन को दबाकर रखने पर, ये शॉर्टकट चिप के तौर पर सुझाए जाते हैं और उन्हें पूरा किया जाता है. ऐक्शन शॉर्टकट को इकाई के शॉर्टकट के तौर पर भी इस्तेमाल किया जा सकता है. इसके लिए, <capability-binding> टैग का इस्तेमाल करके, इसे capability से जोड़ें. इस बारे में यहां बताया गया है.

  • इकाई के शॉर्टकट. इकाई के शॉर्टकट, capability की वॉइस क्वेरी को पूरा करने के लिए, काम करने वाली पैरामीटर वैल्यू की सूची उपलब्ध कराते हैं. उदाहरण के लिए, कसरत के टाइप की सूची वाला इकाई शॉर्टकट ("हाइक," "रन" वगैरह), START_EXERCISE की क्षमता के exercise.name बीआईआई पैरामीटर से जुड़ा है. अगर उपयोगकर्ता की कही गई बात किसी इकाई से मेल खाती है, तो उपयोगकर्ता की क्वेरी की रॉ वैल्यू के बजाय, shortcutId आईडी को इंटेंट को पास किया जाता है.

    Entity शॉर्टकट, intent, shortLabel या longLabel एट्रिब्यूट को तय नहीं करते हैं. इसलिए, इन्हें अपने-आप काम करने वाले प्लैटफ़ॉर्म पर इस्तेमाल करने का सुझाव नहीं दिया जाता. ज़्यादा जानकारी के लिए, ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयों के लिए इनलाइन इन्वेंट्री देखें.

क्षमता स्कीमा

नीचे दी गई टेबल में, shortcuts.xml में capability एलिमेंट के लिए ऐप्लिकेशन की खास सुविधाओं के लिए बनाई गई कार्रवाइयों के स्कीमा के बारे में बताया गया है. किसी टैग को शामिल करते समय, उसके सभी एट्रिब्यूट की वैल्यू देना ज़रूरी है. ऐसा तब तक करना होगा, जब तक कि एट्रिब्यूट को "ज़रूरी नहीं" के तौर पर मार्क न किया गया हो.

Shortcuts.xml टैग इसमें शामिल है विशेषताएं
<capability> <shortcuts>

android:name

app:queryPatterns (सिर्फ़ कस्टम इंटेंट के लिए लागू)

<intent> <capability>

android:action (वैकल्पिक)

android:targetClass (वैकल्पिक)

android:targetPackage (वैकल्पिक)

android:data (वैकल्पिक)

<url-template> <intent>

android:value

<extra> <intent>

android:key

android:value

सिर्फ़ फ़ोरग्राउंड ऐप्लिकेशन को शुरू करने के लिए लागू

<parameter> <intent>

android:name

android:key

android:mimeType (सिर्फ़ कस्टम इंटेंट पर लागू होता है)

android:required (वैकल्पिक)

app:shortcutMatchRequired (वैकल्पिक)

<shortcut-fulfillment> <capability> सिर्फ़ इनलाइन इन्वेंट्री के लिए लागू
<parameter> <shortcut-fulfillment> android:name
<slice> <capability>

सिर्फ़ Android स्लाइस के लिए लागू

स्कीमा की जानकारी

इस सेक्शन में, capability स्कीमा एलिमेंट के बारे में बताया गया है.

<capability>

ऐसा capability जो आपके ऐप्लिकेशन के साथ काम करने वाले ऐप्लिकेशन ऐक्शन इंटेंट की जानकारी देता है. कार्रवाई को पूरा करने के लिए, आपकी shortcuts.xml फ़ाइल के हर <capability> एलिमेंट में कम से कम एक <intent> होना चाहिए.

विशेषताएं:

  • android:name: पहले से मौजूद इंटेंट ऐक्शन आईडी (उदाहरण के लिए, [actions.intent.GET_FOOD_OBSERVATION][]). पहले से मौजूद काम करने वाले इंटेंट की सूची के लिए, पहले से मौजूद इंटेंट का रेफ़रंस देखें.
  • app:queryPatterns: इस इंटेंट के लिए, उपयोगकर्ता से मिलने वाली क्वेरी का स्ट्रिंग कलेक्शन रिसॉर्स. यह एट्रिब्यूट सिर्फ़ कस्टम इंटेंट पर लागू होता है, क्योंकि बीआईआई में पहले से ही उन सामान्य तरीकों के मॉडल शामिल होते हैं जिनसे उपयोगकर्ता अपने टास्क या ढूंढी जा रही जानकारी के बारे में बताते हैं.

<intent>

Android intent एलिमेंट से यह तय होता है कि ऐप्लिकेशन की सुविधाओं का इस्तेमाल करके, उपयोगकर्ता की क्वेरी को कैसे पूरा किया जाना चाहिए. डेवलपर, capability में एक से ज़्यादा <intent> टैग दे सकते हैं. Assistant, capability में सभी ज़रूरी पैरामीटर दिए गए पहले <intent> का इस्तेमाल करके, उपयोगकर्ता की क्वेरी को पूरा करने की कोशिश करती है.

विशेषताएं:

  • android:action: इंटेंट Action टाइप. डिफ़ॉल्ट रूप से, यह ACTION_VIEW पर सेट होती है.
  • android:targetClass: टारगेट ऐक्टिविटी क्लास, उदाहरण के लिए: "com.example.exercise.ExerciseActivity"
  • android:targetPackage: वह पैकेज जिसमें टारगेट ऐक्टिविटी क्लास शामिल है, उदाहरण के लिए: "com.example.exercise
  • android:data: अगर intent में उस टैग का एलान किया गया है, तो इस फ़ील्ड को <url-template> से बदल दिया जाता है.

<url-template>

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

यहां यूआरएल टेंप्लेट की वैल्यू के कुछ उदाहरण दिए गए हैं:

टेंप्लेट वैल्यू बड़ी की गई वैल्यू
https://example.com/test{?foo,bar} "foo": "123"

"bar": "456"

https://example.com/test?foo=123&bar=456
https://example.com/test?utm_campaign=appactions{&foo,bar} "foo": "123"

"bar": "456"

https://example.com/test?utm_campaign=appactions&foo=123&bar=456
https://example.com/test?utm_campaign=appactions{#foo} "foo": "123" https://example.com/test?utm_campaign=appactions#foo=123
myapp://example/{foo} "foo": "123" myapp://example/123

यूआरएल टेंप्लेट कॉन्फ़िगर करने के बारे में ज़्यादा जानने के लिए, ऑर्डर पूरा करने में यूआरएल टेंप्लेट लेख पढ़ें.

<extra>

intent के लिए अतिरिक्त डेटा के बारे में बताता है. ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयों के लिए, इस फ़ील्ड का इस्तेमाल सिर्फ़ capability के लिए [फ़ोरग्राउंड ऐप्लिकेशन इनवोकेशन][] को चालू करने के लिए किया जाता है.

<parameter>

BII पैरामीटर को इंटेंट पैरामीटर की वैल्यू पर मैप करता है. ज़्यादा जानकारी के लिए, पैरामीटर डेटा और मैचिंग देखें.

विशेषताएं:

  • android:name: इस intent पैरामीटर से जोड़ने के लिए BII पैरामीटर का नाम. नाम, BII पैरामीटर का लीफ-लेवल फ़ील्ड होना चाहिए. उदाहरण के लिए, foodObservation.aboutFood.name.
  • android:key: BII पैरामीटर वैल्यू की, डेवलपर की तय की गई कुंजी. उदाहरण के लिए, message.recipient.name BII पैरामीटर के लिए, contact_name तय किया जा सकता है.
  • android:mimeType: पैरामीटर का mimeType, जैसे कि text/*. यह फ़ील्ड सिर्फ़ कस्टम इंटेंट के पैरामीटर के लिए ज़रूरी है.
  • android:required: इससे पता चलता है कि उपयोगकर्ता क्वेरी में इस पैरामीटर को शामिल करना ज़रूरी है या नहीं, ताकि इस इंटेंट का इस्तेमाल किया जा सके. अगर पैरामीटर उपलब्ध नहीं है, तो Assistant, capability के लिए तय किए गए अगले intent का इस्तेमाल करके, उपयोगकर्ता की क्वेरी को पूरा करने की कोशिश करती है.

<shortcut-fulfillment>

इससे पता चलता है कि किसी तय पैरामीटर के लिए, इनलाइन इन्वेंट्री शॉर्टकट में तय किए गए intent का इस्तेमाल, ऑर्डर पूरा करने के लिए किया जाएगा. ज़्यादा जानकारी के लिए, शॉर्टकट इंटेंट का इस्तेमाल करके फ़ुलफ़िलमेंट लेख पढ़ें.

<parameter> (<shortcut-fulfillment> के लिए)

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

एट्रिब्यूट:

  • android:name: इनलाइन इन्वेंट्री शॉर्टकट फ़ुलफ़िलमेंट से जोड़ने के लिए BII पैरामीटर का नाम. नाम, BII पैरामीटर का लीफ़-लेवल फ़ील्ड होना चाहिए. उदाहरण के लिए, menuItem.name.

<slice>

इससे Assistant, इस capability से मैच करने वाली क्वेरी के नतीजे को Android स्लाइस के तौर पर एम्बेड कर पाती है. ज़्यादा जानकारी के लिए, Android स्लाइस के साथ ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयों को इंटिग्रेट करना देखें.

शॉर्टकट स्कीमा

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

Shortcuts.xml टैग इसमें शामिल है विशेषताएं
<shortcut> <shortcuts>

android:shortcutId

android:shortcutShortLabel

android:shortcutLongLabel (वैकल्पिक)

android:icon (वैकल्पिक)

<intent> <shortcut>

android:action

android:targetClass (वैकल्पिक)

android:targetPackage (वैकल्पिक)

android:data (वैकल्पिक)

<capability-binding> <shortcut>

android:key

<parameter-binding> <capability-binding>

android:key (वैकल्पिक)

android:value

<extra> <shortcut>

android:name (वैकल्पिक)

android:value

यह सिर्फ़ Enum पैरामीटर मैच करने के लिए लागू होता है.

शॉर्टकट स्कीमा की जानकारी

इस सेक्शन में, shortcut स्कीमा एलिमेंट के बारे में बताया गया है.

<शॉर्टकट>

shortcuts.xml में तय किया गया Android <shortcut>, जिसमें ऐप्लिकेशन ऐक्शन के लिए काम के कुछ एट्रिब्यूट हों. shortcutShortLabel और shortcutLongLabel फ़ील्ड की स्ट्रिंग वैल्यू का रेफ़रंस, APK के स्ट्रिंग रिसॉर्स की मदद से दिया जाता है.

विशेषताएं:

  • android:shortcutId: इस शॉर्टकट का आइडेंटिफ़ायर.
  • android:shortcutShortLabel: स्ट्रिंग रिसॉर्स, जो शॉर्टकट के लिए इस्तेमाल होने वाले कम शब्दों वाले वाक्यांश को दिखाता है. उदाहरण के लिए, "@string/callDavidShort" "डेविड को कॉल करें" वैल्यू दिखाता है.
  • android:shortcutLongLabel: लंबे शॉर्टकट फ़्रेज़ को दिखाने वाला स्ट्रिंग रिसॉर्स. उदाहरण के लिए, "@string/callDavidLong", "डेविड को ऑडियो कॉल करें" वैल्यू दिखाता है.

<intent>

इस शॉर्टकट से जुड़ा Android इंटेंट. यह intent तब लागू होता है, जब उपयोगकर्ता बोलकर या टच करके इस शॉर्टकट को लॉन्च करता है.

shortcut इंटेंट एट्रिब्यूट, capability intent एट्रिब्यूट से मेल खाते हैं.

<capability-binding>

shortcut को ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयों capability से जोड़ता है. किसी shortcut में यह एलिमेंट जोड़ने पर, Assistant का इस्तेमाल करके वॉइस फ़ुलफ़िलमेंट की सुविधा चालू हो जाती है.

विशेषताएं:

  • android:key: capability के android:name एट्रिब्यूट का इस्तेमाल, shortcut के लिए किया जाता है. उदाहरण के लिए, actions.intent.START_EXERCISE.

<parameter-binding>

ज़रूरी नहीं है. यह एट्रिब्यूट, shortcut को किसी ऐप्लिकेशन ऐक्शन capability के एक पैरामीटर से जोड़ता है. अगर shortcut के लिए parameter-binding तय किया गया है, तो शॉर्टकट का इस्तेमाल करके, BII पैरामीटर को इनलाइन इन्वेंट्री इकाई दी जा सकती है. ज़्यादा जानकारी के लिए, ऐप्लिकेशन ऐक्शन के लिए इनलाइन इन्वेंट्री देखें.

विशेषताएं:

  • android:key: इस शॉर्टकट को जोड़ने के लिए, capability बीआईआई पैरामीटर का नाम. उदाहरण के लिए, exercise.name.
  • android:value: entity वैल्यू. यह कोई एक entity या संसाधन सूची हो सकती है.

<अतिरिक्त>

शॉर्टकट के लिए, extra बंडल का डेटा. Gemini ही ऐप्लिकेशन की खास सुविधाओं के लिए shortcut एलिमेंट के लिए काम का डेटा है. sameAs यूआरएल, रेफ़रंस वाले उस वेब पेज का यूआरएल होता है जिससे इकाई की पहचान साफ़ तौर पर की जा सकती है. एनम वैल्यू के बारे में बताने के लिए इसका इस्तेमाल किया जाता है. हालांकि, ऐसा सिर्फ़ तब होता है, जब इंटेंट पैरामीटर टाइप, schema.org/Enumeration का सब-टाइप हो. यह ऐसे पैरामीटर फ़ील्ड के लिए ज़रूरी है जिनके टाइप, schema.org/Enumeration के सब-टाइप हैं (उदाहरण के लिए: MealTypeBreakfast).

विशेषताएं:

  • android:key: ऐप्लिकेशन ऐक्शन के लिए इस्तेमाल की जा सकने वाली वैल्यू: sameAs
  • android:value: sameAs यूआरएल की वैल्यू

ज़्यादा जानकारी के लिए, एनोटेट की गई पैरामीटर वैल्यू से मैच करना देखें.

इंटेंट पूरा करने के विकल्प

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

ग्राहक को आइटम भेजने के लिए ये विकल्प उपलब्ध हैं:

  • एक्सप्लिसिट इंटेंट: intent के लिए targetClass और targetPackage एट्रिब्यूट तय करके, किसी ऐप्लिकेशन कॉम्पोनेंट को लॉन्च करें. ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयों को पूरा करने का यह सुझाया गया तरीका है.

  • डीप लिंक: intent एलिमेंट में <url-template> टैग तय करके, Android डीप लिंक का इस्तेमाल करके ऐप्लिकेशन डेस्टिनेशन लॉन्च करें. यह तरीका तब फ़ायदेमंद होता है, जब आपके ऐप्लिकेशन का नेविगेशन पहले से ही डीप लिंक पर निर्भर हो.

  • इंटेंट डेटा: intent android:data एट्रिब्यूट में, ऑर्डर पूरा करने के लिए यूआरआई दिया जा सकता है. अगर intent में भी टैग के बारे में बताया गया है, तो यह फ़ील्ड <url-template> डेटा से बदल जाता है.

पैरामीटर डेटा और मैचिंग

डिफ़ॉल्ट रूप से Assistant, उपयोगकर्ता की क्वेरी से निकाले गए बीआईआई पैरामीटर को आपके ऐप्लिकेशन पर, capability में बताए गए Android intent के extra डेटा के तौर पर भेजती है.

इसके अलावा, capability में <url-template> टैग का एलान किया जा सकता है. इसमें डाइनैमिक पैरामीटर के लिए प्लेसहोल्डर होते हैं. यह टेंप्लेट, ऐप्लिकेशन लिंक यूआरएल, कस्टम स्कीम या इंटेंट पर आधारित यूआरएल का इस्तेमाल करके, आपकी किसी Android गतिविधि पर मैप करता है.

इंटेंट एक्सट्रा का इस्तेमाल करना

यहां दिए गए उदाहरण में, capability के लिए तय किया गया एक्सप्लिसिट इंटेंट दिखाया गया है:

<capability android:name="actions.intent.START_EXERCISE">
  <intent
    android:targetPackage="com.example.myapp"
    android:targetClass="com.example.myapp.ExerciseActivity">
    <parameter android:name="exercise.name" android:key="exercise" />
  </intent>
</capability>

ऊपर दिए गए सैंपल के मुताबिक, "Ok Google, ExampleApp से लाटे ऑर्डर करें" जैसी उपयोगकर्ता क्वेरी के लिए, ऐप्लिकेशन को एक intent मिलता है, जो कॉम्पोनेंट को चालू करता है: targetPackage, targetClass. कॉम्पोनेंट को key = "exercise", value = "Running" के साथ एक एक्सट्रा मिलता है.

अगर आपके ऐप्लिकेशन में डाइनैमिक पैरामीटर के साथ, ऐप्लिकेशन से लिंक किए गए यूआरएल पहले से ही मैनेज किए जा सकते हैं, तो intent में <url-template> तय करके, Android डीप लिंक जनरेट किए जा सकते हैं. यहां दिए गए सैंपल में <url-template> के बारे में बताया गया है:

<capability android:name="actions.intent.START_EXERCISE">
  <intent>
    <url-template android:value="myapp://start{?exercise}" />
    <parameter android:name="exercise.name" android:key="exercise" />
  </intent>
</capability>

ऊपर दिए गए सैंपल के हिसाब से, उपयोगकर्ता की क्वेरी, जैसे कि “Ok Google, ExampleApp से लैटे ऑर्डर करें" के लिए, ऐप्लिकेशन को जनरेट किया गया यूआरएल मिलता है: "myapp://start?exercise=Running".

अपने यूआरएल में BII पैरामीटर को किसी पोज़िशन पर मैप करने के लिए, <parameter> टैग के android:name एट्रिब्यूट का इस्तेमाल करें. यह एट्रिब्यूट, यूआरएल टेंप्लेट में मौजूद उस android:key वैल्यू से जुड़ा होता है जिसे आपको उपयोगकर्ता की जानकारी से बदलना है. android:key वैल्यू, आपके <url-template> में मौजूद होनी चाहिए और कर्ली ब्रैकेट ({}) में होनी चाहिए.

सूची में शामिल पैरामीटर वैल्यू को मैच करें

कुछ बीआईआई पैरामीटर, ग्राहक को सामान भेजने के इंटेंट के लिए, तय की गई वैल्यू देते हैं. उदाहरण के लिए, RECORD_FOOD_OBSERVATION बीआईआई की इस्तेमाल की जा सकने वाली टेक्स्ट वैल्यू. इन पैरामीटर के लिए, Assistant, उपयोगकर्ता की क्वेरी ("ब्रेकफ़ास्ट") को ऐसी इकाई से मैच करती है जिसकी sameAs वैल्यू, एनम स्कीमा यूआरएल (https://schema.googleapis.com/MealTypeBreakfast) से मैच होती है. इस्तेमाल किए जा सकने वाले entity के लिए, enum की वैल्यू को जोड़ने के लिए, आपको अपने shortcut में sameAs असोसिएशन का एलान करना होगा. यहां दिए गए सैंपल में, इनलाइन इकाई के शॉर्टकट के लिए sameAs असोसिएशन दिखाया गया है:

<shortcut android:shortcutId="meal_breakfast" >
    <capability-binding android:key="actions.intent.RECORD_FOOD_OBSERVATION">
        <parameter-binding android:key="foodObservation.forMeal" />
    </capability-binding>
    <extra
        android:key="sameAs"
        android:value="http://schema.googleapis.com/MealTypeBreakfast" />
</shortcut>

<capability android:name="actions.intent.RECORD_FOOD_OBSERVATION">
  <intent targetPackage="com.example.app" targetClass="com.example.app.Class">
    <parameter android:name="foodObservation.forMeal" android:key="for_meal" />
  </intent>
</capability>

ऊपर दिए गए उदाहरण में, अगर RECORD_FOOD_OBSERVATION की सुविधा, "नाश्ता" के खाने के टाइप के लिए मैच को ट्रिगर करती है, तो फ़िलहाल उपलब्ध कराने की सुविधा intent के साथ यह एक्सट्रा भेजा जाता है:

  • key = "for_meal"
  • value = "meal_breakfast"

सुविधाएं

shortcuts.xml में, ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयां करने की ये सुविधाएं उपलब्ध हैं.

ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयों की इनलाइन इन्वेंट्री

कुछ बीआईआई पैरामीटर के लिए, शॉर्टकट का इस्तेमाल इकाई को बाहर निकालने की प्रक्रिया को, shortcuts.xml में बताई गई इकाइयों के सेट पर ले जाने के लिए किया जा सकता है. इसे इनलाइन इन्वेंट्री भी कहा जाता है. ज़्यादा जानकारी के लिए, इनलाइन इन्वेंट्री देखें.

कस्टम इंटेंट

shortcuts.xml में कस्टम इंटेंट का एलान किया जा सकता है, ताकि आपके ऐप्लिकेशन में ऐसी सुविधाएं चालू की जा सकें जो उपलब्ध बीआईआई से मेल नहीं खाती हैं. बीआईआई की परिभाषा की तरह ही, कस्टम इंटेंट की सुविधा भी मिलती-जुलती है. हालांकि, shortcuts.xml में कस्टम इंटेंट के लिए दो अतिरिक्त एट्रिब्यूट की ज़रूरत होती है:

  • app:queryPatterns: ऐसा कलेक्शन रिसॉर्स जो किसी कस्टम इंटेंट के लिए, अलग-अलग क्वेरी पैटर्न के बारे में बताता है.

  • android:mimeType: कस्टम इंटेंट का पैरामीटर टाइप. यह फ़ील्ड, उन बीआईआई के लिए ज़रूरी नहीं है जिनमें पैरामीटर टाइप की जानकारी पहले से मौजूद होती है. कस्टम इंटेंट पैरामीटर के लिए, काम करने वाला सिमैंटिक टाइप बताना ज़रूरी है.

ज़्यादा जानकारी के लिए, कस्टम इंटेंट देखें.