शॉर्टकट.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 = "2024-09-06T23:59:59"

Assistant, BII पैरामीटर को capability में बताए गए intent पर पास करता है. किसी कैपेबिलिटी में एक या उससे ज़्यादा intent एलिमेंट तय किए जा सकते हैं, ताकि उपयोगकर्ता अलग-अलग तरीकों से बीआईआई को ट्रिगर कर सके. उदाहरण के लिए, आपके पास ऊपर दिए गए उदाहरण में, ऐसा फ़ुलफ़िलमेंट intent तय करने का विकल्प है जिसके लिए दोनों BII पैरामीटर ज़रूरी हैं. इसके बाद, एक दूसरा इंटेंट तय किया जा सकता है. इसके लिए, एक 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 BII पैरामीटर से जुड़ी, कसरत के टाइप ("लंबी पैदल यात्रा," "दौड़ना" वगैरह) की सूची वाला एंटिटी शॉर्टकट. अगर उपयोगकर्ता की कही गई बात किसी इकाई से मेल खाती है, तो उपयोगकर्ता की क्वेरी की रॉ वैल्यू के बजाय, 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 के लिए [foreground app invocation][] को चालू करने के लिए किया जाता है.

<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 स्कीमा एलिमेंट के बारे में बताया गया है.

<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 BII पैरामीटर का नाम. उदाहरण के लिए, exercise.name.
  • android:value: entity वैल्यू. यह एक entity या संसाधनों की सूची हो सकती है.

<extra>

शॉर्टकट के लिए extra बंडल डेटा. ऐप्लिकेशन ऐक्शन shortcut एलिमेंट के लिए, sameAs ही एक ऐसा डेटा है जो काम का है. 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 उपयोगकर्ता की क्वेरी से निकाले गए BII पैरामीटर को आपके ऐप्लिकेशन पर भेजती है. ये पैरामीटर, 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, मेरा रन शुरू करो" जैसी उपयोगकर्ता क्वेरी के लिए, ऐप्लिकेशन को एक intent मिलता है, जो कॉम्पोनेंट को चालू करता है: targetPackage, targetClass. कॉम्पोनेंट को key = "exercise", value = "Running" के साथ एक एक्सट्रा मिलता है.

अगर आपका ऐप्लिकेशन, डाइनैमिक पैरामीटर के साथ ऐप्लिकेशन से लिंक किए गए यूआरएल को पहले से ही मैनेज कर सकता है, तो ऑर्डर पूरा करने के लिए Android डीप लिंक जनरेट करने के लिए, intent में <url-template> तय किया जा सकता है. यहां दिए गए सैंपल में <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, मेरा रन शुरू करो" जैसी उपयोगकर्ता क्वेरी के लिए, ऐप्लिकेशन को जनरेट किया गया यूआरएल मिलता है: "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 के लिए एनम वैल्यू जोड़ने के लिए, आपको अपने 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 में, ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयां करने की ये सुविधाएं उपलब्ध हैं.

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

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

कस्टम इंटेंट

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

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

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

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