कस्टम इंटेंट

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

बीआईआई की तरह, कस्टम इंटेंट shortcuts.xml स्कीमा और इस तरह से काम करें Assistant और ऑर्डर पूरा करने के लिए, आपके ऐप्लिकेशन के बीच कनेक्शन पॉइंट. अपने हिसाब से चुनी गई रेंज इंटेंट में इंटेंट पैरामीटर भी होते हैं, जिन्हें आप अपने ग्राहक को आइटम भेजना.

बीआईआई के उलट, कस्टम इंटेंट के लिए क्वेरी पैटर्न की ज़रूरत होती है, ताकि उदाहरण के तौर पर, उन क्वेरी के बारे में बताता है जिन्हें कोई उपयोगकर्ता कह सकता है. यह रणनीति, बिल्ट-इन इंटेंट के मुताबिक, जो सामान्य तरीकों से उपयोगकर्ताओं को इस इंटेंट को ज़ाहिर करने का मॉडल बनाते हैं.

सीमाएं

कस्टम इंटेंट की सीमाएं नीचे दी गई हैं:

  • कस्टम इंटेंट का नाम actions.intent से शुरू नहीं हो सकता.
  • कस्टम इंटेंट का नाम, इन कस्टम इंटेंट के नामों में सबसे अलग होना चाहिए आपका ऐप्लिकेशन.
  • Google, पैरामीटर निकालने के लिए सिर्फ़ कुछ डेटा टाइप इस्तेमाल करता है Assistant (इस्तेमाल किए जा सकने वाले टाइप देखें).
  • कस्टम इंटेंट में इस्तेमाल किए जा सकने वाले क्वेरी पैटर्न के उदाहरण होने चाहिए (क्वेरी पैटर्न देखें).
  • हर क्वेरी में ज़्यादा से ज़्यादा दो टेक्स्ट पैरामीटर इस्तेमाल किए जा सकते हैं. इस सीमा का इस्तेमाल नहीं किया जा सकता दूसरे डेटा टाइप पर लागू होती हैं.
  • कस्टम इंटेंट, सिर्फ़ en-US स्थान-भाषा के साथ काम करते हैं. साथ ही, डिवाइस और Assistant पर भाषा सेटिंग मेल खानी चाहिए.

काम करने वाली फ़ाइल के टाइप

कस्टम इंटेंट, नीचे दिए गए schema.org के साथ काम करते हैं पैरामीटर एक्सट्रैक्शन:

  • https://schema.org/Text
  • https://schema.org/Date
  • https://schema.org/Time
  • https://schema.org/Number

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

बीआई का इस्तेमाल करने वाले ऐप्लिकेशन की दूसरी कार्रवाइयों की तरह ही, आप इंटेंट के हिसाब से, <capability> एलिमेंट में shortcuts.xml.

<shortcuts> रूट एलिमेंट में क्षमताओं के बारे में बताया गया है. आसानी से अपने कैलेंडर में जोड़ें. अपने <shortcuts> एलिमेंट के बारे में बताएं. साथ ही, इसके नेमस्पेस शामिल करें जिन एट्रिब्यूट को ऐक्सेस करना है उन्हें यहां दिए गए उदाहरण में दिखाया गया है:

<shortcuts
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
  ...
</shortcuts>

android:name एट्रिब्यूट में कस्टम इंटेंट का नाम दें और में क्वेरी पैटर्न संसाधन फ़ाइल का रेफ़रंस दिया गया है queryPatterns एट्रिब्यूट की वैल्यू सबमिट करें.

<shortcuts
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
  <capability
      android:name="custom.actions.intent.EXAMPLE_INTENT"
      app:queryPatterns="@array/ExampleQueries">
    <intent ...>
      <url-template
          android:value="http://custom.com{?number_of_items,item_name}" />
      <parameter
          android:name="number_of_items"
          android:key="number_of_items"
          android:mimeType="https://schema.org/Number" />
      <parameter
          android:name="item_name"
          android:key="item_name"
          android:mimeType="https://schema.org/Text" />
    </intent>
  </capability>
  ...
</shortcuts>

कस्टम इंटेंट के नाम, इनसे शुरू नहीं हो सकते actions.intent है, क्योंकि वह नेमस्पेस बीआईआई के लिए रिज़र्व है. इसके बजाय, जब अपने कस्टम इंटेंट को नाम देना, प्रीफ़िक्स का इस्तेमाल करें अपने कस्टम इंटेंट को दोनों से अलग करने के लिए, custom.actions.intent बीआईआई और Android इंटेंट, जो काम करने का तरीका अलग होता है.

हर पैरामीटर के लिए, काम करने वाला schema.org प्रकार दें पैरामीटर का मतलब सबसे अच्छी तरह बताता है. उदाहरण के लिए, उस तारीख के बारे में बताने के लिए https://schema.org/Date करें जो आपको मिल सकती है:

...
<intent>
  <url-template android:value="https://example.com/appt{?apptType,date,time}" />
  <parameter
      android:name="date"
      android:key="date"
      android:mimeType="https://schema.org/Date" />
  ...
</intent>
...

एक जैसे फ़ॉर्मैट का इस्तेमाल करके, shortcuts.xml में कस्टम इंटेंट के लिए शॉर्टकट तय करें बीआईआई के शॉर्टकट के तौर पर.

नीचे दिया गया कोड, ऐप्लिकेशन की ऐसी कार्रवाई के बारे में बताता है जो बताई गई क्वेरी का इस्तेमाल करती है पैटर्न, SCHEDULE_APPOINTMENT कस्टम इंटेंट को ट्रिगर करते हैं और तय की गई वैल्यू का इस्तेमाल करते हैं apptType के लिए, DRIVERS_LICENSE और VEHICLE_REGISTRATION वैल्यू का सेट पैरामीटर.

<shortcuts
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
  <capability
      android:name="custom.actions.intent.SCHEDULE_APPOINTMENT"
      app:queryPatterns="@array/scheduleApptQueries">
    <intent ...>
     <url-template android:value="https://example.com/appt{?apptType,date,time}" />
       <parameter
          android:name="date"
          android:key="date"
          android:mimeType="https://schema.org/Date" />
       <parameter
          android:name="time"
          android:key="time"
          android:mimeType="https://schema.org/Time" />
       <!-- The following parameter has no type because the shortcuts are bound to it -->
       <parameter android:name="apptType" android:key="apptType" />
    </intent>
  </capability>

  <shortcut
      android:shortcutShortLabel="Driver's License"
      android:shortcutId="DRIVERS_LICENSE">
    <capability-binding android:key="custom.actions.intent.SCHEDULE_APPOINTMENT">
      <parameter-binding
          android:key="apptType"
          android:value="@string/driversLicense" />
    </capability-binding>
  </shortcut>

  <shortcut
      android:shortcutsShortLabel="Vehicle Registration"
      android:shortcutId="VEHICLE_REGISTRATION">
    <capability-binding android:key="custom.actions.intent.SCHEDULE_APPOINTMENT">
      <parameter-binding
          android:key="apptType"
          android:value="@string/vehicleRegistration" />
    </capability-binding>
  </shortcut>
</shortcuts>

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

क्वेरी पैटर्न

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

किसी Android संसाधन फ़ाइल (आम तौर पर /res/values/strings.xml) में, क्वेरी बताएं स्ट्रिंग अरे में, आइटम के तौर पर पैटर्न. जब आपके ऐप्लिकेशन की ख़ास सुविधाओं के लिए कार्रवाई शुरू की गई है. Google Assistant आपकी ग्राहक के इंटेंट से मैच करने के लिए, क्वेरी पैटर्न का इस्तेमाल करें. हर क्वेरी आपके द्वारा प्रदान किया गया पैटर्न ऐसा वाक्यांश दिखाता है जिसे आप संबंधित कस्टम इंटेंट.

कस्टम इंटेंट के लिए क्वेरी पैटर्न उपलब्ध कराते समय, हर पैटर्न को फ़ॉलो किया जाना चाहिए साफ़ तौर पर बोला जाने वाला मैसेज, जैसे कि "Example App खोलो और" या "Example App शुरू करें और". उदाहरण के लिए, इन उपयोगकर्ता क्वेरी पर गौर करें:

  • "Ok Google, Example Game ऐप्लिकेशन खोलो और केक बनाना शुरू करो."
  • "Ok Google, Example Game ऐप्लिकेशन खोलो और ऐप्पल पाई बनाना शुरू करो."
  • "Ok Google, Example Game ऐप्लिकेशन चालू करो और केक के पांच आइटम बनाओ."
  • "Ok Google, Example Game ऐप्लिकेशन का इस्तेमाल करके पांच बार केक बनाएं."

उपयोगकर्ता क्वेरी से मिलान करने के लिए, वे क्वेरी पैटर्न उपलब्ध कराएं जिनमें बोले जाने वाले वाक्यांश के बाद क्वेरी लिखें. वह जानकारी जिसे आपको क्वेरी (जैसे कि टेक्स्ट या उपयोगकर्ता की ओर से दिया गया नंबर) का इस्तेमाल करके, आप क्वेरी पैटर्न में प्लेसहोल्डर वाले मिलते-जुलते इंटेंट पैरामीटर.

क्वेरी पैटर्न में पैरामीटर का रेफ़रंस देने के लिए, $ पैरामीटर की उपलब्धता दें. उदाहरण के लिए, पैरामीटर, जैसे कि <parameter name="date1" ... (actions.xml में) या <parameter android:name="date1" ... (shortcuts.xml में), आप $date1 का इस्तेमाल करते हैं.

इस कोड में उन क्वेरी पैटर्न के बारे में बताया गया है जो पिछले उपयोगकर्ता से मैच करते हैं आइटम के नाम और बनाए जाने वाले आइटम की संख्या से जुड़ी क्वेरी और एक्सट्रैक्ट वैल्यू:

<resources>
  <string-array name="ExampleQueries">
    <item>start making a $text1</item>
    <item>start making an $text1</item>
    <item>craft $number1 $text1 items</item>
    <item>produce $text1 $number1 times</item>
  </string-array>
</resources>

क्वेरी पैटर्न, कंडिशनल के साथ काम करते हैं. उदाहरण के लिए, set (an)? appointment $date $time. इस मामले में, दोनों "आज दोपहर में अपॉइंटमेंट सेट करें" और "आज दोपहर का अपॉइंटमेंट सेट करो" मान्य क्वेरी होती हैं.