अपने ऐप्लिकेशन में मौजूद फ़ंक्शन और लागू करने के लिए उससे जुड़े बिल्ट-इन इंटेंट (बीआईआई) की पहचान करने के बाद, उन बीआईआई का एलान करें जिनके साथ आपका फ़ंक्शन काम करता है. इसके लिए, 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
का रेफ़रंस जोड़ने के लिए, यह तरीका अपनाएं:
अपने ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल (
AndroidManifest.xml
) में, ऐसी गतिविधि ढूंढें जिसके इंटेंट फ़िल्टर,android.intent.action.MAIN
ऐक्शन औरandroid.intent.category.LAUNCHER
कैटगरी पर सेट हों.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> |
|
<intent> |
<capability> |
|
<url-template> |
<intent> |
|
<extra> |
<intent> |
सिर्फ़ फ़ोरग्राउंड ऐप्लिकेशन को शुरू करने के लिए लागू |
<parameter> |
<intent> |
|
<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"
|
https://example.com/test?foo=123&bar=456 |
https://example.com/test?utm_campaign=appactions{&foo,bar} |
"foo": "123"
|
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> |
|
<intent> |
<shortcut> |
|
<capability-binding> |
|
|
<parameter-binding> |
<capability-binding> |
|
<extra> |
<shortcut> |
यह सिर्फ़ 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 डीप लिंक के लिए यूआरएल टेंप्लेट का इस्तेमाल करना
अगर आपका ऐप्लिकेशन, डाइनैमिक पैरामीटर के साथ ऐप्लिकेशन से लिंक किए गए यूआरएल को पहले से ही मैनेज कर सकता है, तो ऑर्डर पूरा करने के लिए 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
: कस्टम इंटेंट का पैरामीटर टाइप. यह फ़ील्ड, उन बीआईआई के लिए ज़रूरी नहीं है जिनमें पैरामीटर टाइप की जानकारी पहले से मौजूद होती है. कस्टम इंटेंट के पैरामीटर के लिए, इस्तेमाल किया जा सकने वाला सीमेंटिक टाइप तय करना ज़रूरी है.
ज़्यादा जानकारी के लिए, कस्टम इंटेंट देखें.