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

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

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

  • menuItem.name = "पिज़्ज़ा"
  • menuItem.inMenuSection.inMenu.forRestaurant.name = "ExampleCafe"

Assistant, बीआईआई पैरामीटर को वाहन के ऑर्डर intent में पास करती है. capability. एक या उससे ज़्यादा intent एलिमेंट की जानकारी, इन कामों के लिए दी जा सकती है बीआईआई शुरू करने के अलग-अलग तरीकों को शामिल करना चाहिए. उदाहरण के लिए, अगर आपने ऐसी फ़ुलफ़िलमेंट intent को परिभाषित कर सकता है जिसके लिए ऊपर उदाहरण दिया गया है. इसके बाद, दूसरा इंटेंट तय किया जा सकता है, जिसके लिए एक बीआईआई की ज़रूरत होती है menuItem.name पैरामीटर, जो आस-पास मौजूद रेस्टोरेंट के विकल्प दिखाता है. ऐसा तब होता है, जब कोई उपयोगकर्ता एक आसान से अनुरोध करता है. जैसे, "Ok Google, ExampleApp पर पिज़्ज़ा ऑर्डर करो."

खास जानकारी

ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयां कॉन्फ़िगर करने के लिए, अपने ऐप्लिकेशन में मौजूद shortcuts.xml फ़ाइल का इस्तेमाल किया जाता है प्रोजेक्ट की res/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" />
    

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

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

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

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

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

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

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

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

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

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

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

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 (वैकल्पिक)

<data> <parameter> android:pathPattern (सिर्फ़ वेब इन्वेंट्री के लिए लागू)
<shortcut-fulfillment> <capability> सिर्फ़ इनलाइन इन्वेंट्री के लिए लागू होता है
<parameter> <shortcut-fulfillment> android:name
<slice> <capability>

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

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

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

<क्षमता>

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

विशेषताएं:

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

<इंटेंट>

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

विशेषताएं:

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

<url-टेंप्लेट>

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

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

टेंप्लेट वैल्यू बड़ा किया गया मान
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

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

<अतिरिक्त>

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

<पैरामीटर>

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

विशेषताएं:

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

<data>

वेब इन्वेंट्री को parameter से जोड़ता है.

एट्रिब्यूट:

  • android:pathPattern: entity यूआरएल का यूआरएल पैटर्न, इसका इस्तेमाल करके दिया जाएगा वेब इन्वेंट्री. यह एट्रिब्यूट दो वाइल्डकार्ड के साथ काम करता है:

    • *: तारा चिह्न, शून्य या उससे ज़्यादा घटनाओं के क्रम से मेल खाता है ठीक से पहले आने वाला वर्ण

    • .*: पीरियड के बाद तारे का निशान, शून्य या शून्य के किसी भी क्रम से मेल खाता है ज़्यादा वर्ण इस्तेमाल करें.

    • एस्केप कैरेक्टर की ज़रूरत सिर्फ़ लिटरल * और \ के लिए होती है, जो कि \\* और \\\\ के तौर पर एस्केप किया जा सकता है.

<शॉर्टकट-fulfillment>

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

<पैरामीटर> (<shortcut-fulfillment> के लिए)

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

विशेषता:

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

<स्लाइस>

इससे 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" "एक लाइन बनाएं" वैल्यू डेविड को ऑडियो कॉल करो."

<इंटेंट>

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

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

<capability-binding>

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

विशेषताएं:

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

<पैरामीटर-बाइंडिंग>

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

विशेषताएं:

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

<अतिरिक्त>

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

विशेषताएं:

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

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

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

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

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

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

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

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

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

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

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

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

इस उदाहरण में, capability के लिए साफ़ तौर पर बताए गए इंटेंट के बारे में बताया गया है ग्राहक को आइटम भेजना:

<capability android:name="actions.intent.ORDER_MENU_ITEM">
  <intent
    android:targetPackage="com.example.myapp"
    android:targetClass="com.example.myapp.OrderMenuItemActivity">
    <parameter android:name="menuItem.name" android:key="menu" />
  </intent>
</capability>

ऊपर दिए गए सैंपल में, "Ok Google, कॉफ़ी पीने की जगह" से जुड़ी उपयोगकर्ता क्वेरी के लिए उदाहरण के लिए," ऐप्लिकेशन को एक intent मिलता है, जो कॉम्पोनेंट को शुरू करता है: targetPackage, targetClass. घटक को key = ”menu”, value = ”latte”.

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

<capability android:name="actions.intent.ORDER_MENU_ITEM">
  <intent>
    <url-template android:value="myapp://order{?menu}" />
    <parameter android:name="menuItem.name" android:key="menu" />
  </intent>
</capability>

ऊपर दिए गए सैंपल में, उपयोगकर्ता की क्वेरी के लिए, जैसे कि “Ok Google, कॉफ़ी ऑर्डर करो से हटा दिया जाता है", तो ऐप्लिकेशन को जनरेट किया गया यूआरएल मिलेगा: "myapp://order?menu=latte".

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

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

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

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