ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयों की मदद से, किसी Android ऐप्लिकेशन को Google Assistant के लिए उपलब्ध कराना

1. खास जानकारी

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

इस कोडलैब में, ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयों की मदद से डेवलप करने के शुरुआती लेवल के कॉन्सेप्ट को शामिल किया गया है. इस कोडलैब का पालन करने के लिए, आपके पास Android ऐप्लिकेशन और Android इंटेंट डेवलप करने का अनुभव होना चाहिए. अगर आपने Android का इस्तेमाल पहले नहीं किया है, तो हो सकता है कि आप Android डेवलपर की बुनियादी बातों के लिए बने किसी कोडलैब का इस्तेमाल करना चाहें.

आपको क्या बनाना होगा

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

आप इन चीज़ों के बारे में जानेंगे

Assistant का इस्तेमाल किसी Android ऐप्लिकेशन में करने के लिए, सेहत और फ़िटनेस कैटगरी से बीआईआई इस्तेमाल करने का तरीका जाना जा सकता है. अपने बीआईआई की जांच करने के लिए, आप Android Studio के लिए Google Assistant प्लगिन का इस्तेमाल करना भी सीखेंगे.

ज़रूरी शर्तें

जारी रखने से पहले, पक्का करें कि आपके एनवायरमेंट में ये टूल मौजूद हों:

  • शेल कमांड चलाने के लिए टर्मिनल. इसमें git इंस्टॉल किया गया है.
  • Android Studio का सबसे नया वर्शन.
  • एक ऐसा Google खाता जिससे [Google Play Console][] का ऐक्सेस मिलता हो.
  • आपके पास फ़िज़िकल या वर्चुअल Android डिवाइस होना चाहिए, जिससे Play Store को ऐक्सेस किया जा सके.

आगे बढ़ने से पहले पक्का करें कि आपने उसी Google खाते से Android Studio में साइन इन किया है जो आपके टेस्ट डिवाइस पर मौजूद Google ऐप्लिकेशन से जुड़ा है.

2. जानें कि यह सुविधा कैसे काम करती है

ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयां, Google Assistant की सुविधा वाले उपयोगकर्ताओं को आपके Android ऐप्लिकेशन से जोड़ती हैं. वे कैसे काम करती हैं?

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

इस फ़्लो डायग्राम में दिखाया गया है कि Google Assistant, ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयों की वॉइस क्वेरी को कैसे प्रोसेस करती है

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

हर सुविधा एलिमेंट के बारे में जानकारी दी गई है:

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

मूड

नैचुरल लैंग्वेज अंडरस्टैंडिंग (एनएलयू) में, इंटेंट, उपयोगकर्ता के ऐसे वाक्यांशों का एक ग्रुप होता है जिनका मतलब एक जैसा होता है. Google ने दर्जनों "बिल्ट-इन" इंटेंट (बीआईआई), जिसमें ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयों के साथ उपलब्ध अलग-अलग तरह के अनुरोधों को शामिल किया जाता है. उदाहरण के लिए, Assistant को "पिज़्ज़ा ऑर्डर करें" या "मुझे डिज़र्ट मेन्यू दिखाओ" वाक्यांशों को ORDER_MENU_ITEM बीआईआई के साथ जोड़ने के लिए ट्रेनिंग दी गई है. ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयों की मदद से, इन बीआईआई का इस्तेमाल करके, बोलकर दिए जाने वाले अनुरोधों को ऐप्लिकेशन की सुविधाओं में तेज़ी से बढ़ाया जा सकता है.

ग्राहक का ऑर्डर पूरा करना

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

3. अपना डेवलपमेंट एनवायरमेंट तैयार करें

यह कोडलैब, Android के लिए फ़िटनेस सैंपल ऐप्लिकेशन का इस्तेमाल करता है. इस ऐप्लिकेशन पर उपयोगकर्ता, कसरत का टाइमर शुरू और बंद कर सकते हैं. साथ ही, वे कसरत के अपने रूटीन के आंकड़े देख सकते हैं.

अपनी बुनियादी फ़ाइलें डाउनलोड करना

इस कोडलैब के लिए बेस फ़ाइलें पाने के लिए, GitHub रिपॉज़िटरी का क्लोन बनाने के लिए, नीचे दिया गया कमांड चलाएं:

git clone --branch codelab-start https://github.com/actions-on-google/appactions-fitness-kotlin.git

डेटा स्टोर करने की जगह को क्लोन करने के बाद, उसे Android Studio में खोलें:

  1. Android Studio में आपका स्वागत है डायलॉग में, प्रोजेक्ट इंपोर्ट करें पर क्लिक करें.
  2. वह फ़ोल्डर ढूंढें और चुनें जिसमें आपने रेपो को क्लोन किया था.

Android ऐप्लिकेशन का आईडी अपडेट करना

ऐप्लिकेशन के ऐप्लिकेशन आईडी को अपडेट करने से, आपके टेस्ट डिवाइस पर ऐप्लिकेशन की खास तरह से पहचान होती है. साथ ही, इसमें "डुप्लीकेट पैकेज नाम" की जानकारी भी शामिल नहीं होती है अगर ऐप्लिकेशन को Play Console में अपलोड किया गया है, तो गड़बड़ी का मैसेज दिखेगा. ऐप्लिकेशन आईडी अपडेट करने के लिए, app/build.gradle खोलें:

android {
...
  defaultConfig {
    applicationId "com.MYUNIQUENAME.android.fitactions"
    ...
  }
}

"MYUNIQUENAME" बदलें को applicationId फ़ील्ड में डालें.

अपने डिवाइस पर ऐप्लिकेशन आज़माएं

ऐप्लिकेशन के कोड में और बदलाव करने से पहले, यह जानना मददगार होता है कि सैंपल ऐप्लिकेशन क्या कर सकता है. डेवलपर एनवायरमेंट में ऐप्लिकेशन की जांच करने के लिए, यह तरीका अपनाएं:

  1. आपका वर्चुअल या फ़िज़िकल Android टेस्ट डिवाइस खोला जा रहा है.
  2. पुष्टि की जा रही है कि Assistant ऐप्लिकेशन काम कर रहा है या नहीं.
  3. अपने डिवाइस पर सैंपल ऐप्लिकेशन को डिप्लॉय करने और चलाने के लिए, Android Studio का इस्तेमाल किया जा रहा है.

अपने ऐप्लिकेशन को टेस्ट करने के लिए, यह तरीका अपनाएं:

  1. Android Studio में, Run > ऐप्लिकेशन चलाएं या टूलबार में Runacabcb8f8634af20.png पर क्लिक करें.
  2. अगर किसी वर्चुअल डिवाइस का इस्तेमाल किया जा रहा है, तो डिप्लॉयमेंट टारगेट चुनें डायलॉग में, कोई वर्चुअल डिवाइस चुनें और ठीक है पर क्लिक करें. हमारा सुझाव है कि आप Android 8 (एपीआई लेवल 26) या उसके बाद का ओएस वर्शन इस्तेमाल करें. हालांकि, Android 5 (एपीआई लेवल 21) से पहले, डिवाइसों पर कार्रवाइयां की जा सकती हैं.
  3. ऐप्लिकेशन खोलने के बाद, Assistant को सेट अप करने के लिए होम बटन को दबाकर रखें. साथ ही, पुष्टि करें कि यह काम कर रही है. अगर आपने Assistant में पहले से साइन इन नहीं किया है, तो उसमें साइन इन करें.
  4. ऐप्लिकेशन को फिर से खोलें.

फ़ोन पर Fit Actions ऐप्लिकेशन खुला है और इसमें कसरत के आंकड़े दिख रहे हैं.

दूसरा डायग्राम. Fit Actions सैंपल ऐप्लिकेशन, जिसमें कसरत के आंकड़े दिखाए गए हैं.

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

Google Assistant प्लगिन इंस्टॉल करें

Google Assistant प्लगिन की मदद से आप किसी टेस्ट डिवाइस पर अपनी ऐप्लिकेशन कार्रवाइयों को टेस्ट कर सकते हैं. इसे Android Studio में जोड़ने के लिए, यह तरीका अपनाएं:

  1. फ़ाइल पर जाएं > सेटिंग (MacOS पर Android Studio > प्राथमिकताएं).
  2. प्लगिन सेक्शन में, Marketplace पर जाएं और "Google Assistant" खोजें.
  3. टूल इंस्टॉल करें और Android Studio को रीस्टार्ट करें.

4. व्यायाम शुरू करने की बीआईआई की सुविधा जोड़ें

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

सुविधा के बारे में बताना

Assistant, बोले गए निर्देशों को प्रोसेस करने के लिए, shortcuts.xml में बताए गए capability एलिमेंट का इस्तेमाल करती है. इसके लिए, Assistant ये काम करती है:

  1. Assistant, उपयोगकर्ता की वॉइस क्वेरी का मिलान, आपके ऐप्लिकेशन की सुविधाओं में बताए गए बीआईआई से करती है.
  2. Assistant, क्वेरी से वैल्यू को बीआईआई पैरामीटर में निकालती है. हर पैरामीटर को, जनरेट किए गए Intent से अटैच किए गए Bundle में जोड़ा जाता है.
  3. Assistant, ऐप्लिकेशन को लॉन्च करने के लिए Intent का इस्तेमाल करती है. इससे ऐप्लिकेशन को बंडल किए गए पैरामीटर का ऐक्सेस मिलता है.

START_EXERCISE बीआईआई, exercise.name बीआईआई पैरामीटर के साथ काम करता है. इस पैरामीटर का इस्तेमाल करके उपयोगकर्ता, ऐप्लिकेशन में ट्रैक करने के लिए कसरत का टाइप तय कर सकेंगे.

START_EXERCISE बीआईआई को अपने ऐप्लिकेशन में जोड़ने के लिए, इस capability को shortcuts.xml में जोड़ें. यह प्रोजेक्ट app/src/main/res/xml की सैंपल प्रोजेक्ट डायरेक्ट्री में मौजूद है:

<!-- shortcuts.xml -->

<capability android:name="actions.intent.START_EXERCISE">
  <intent
    android:action="android.intent.action.VIEW"
    android:targetPackage="PUT_YOUR_APPLICATION_ID_HERE"
    android:targetClass="com.devrel.android.fitactions.FitMainActivity">
    <parameter
      android:name="exercise.name"
      android:key="exerciseType"/>
  </intent>
</capability>

PUT_YOUR_APPLICATION_ID_HERE को पिछले चरण में तय किए गए यूनीक applicationId से बदलें.

पिछला सैंपल एक्सएमएल:

  • START_EXERCISE बीआईआई की क्षमता के बारे में बताता है.
  • इससे Android intent के बारे में जानकारी मिलती है, जिसे Assistant ऐप्लिकेशन लॉन्च करने के लिए जनरेट करती है:
    • targetPackage और targetClass एट्रिब्यूट, फ़ाइल पाने की गतिविधि के बारे में बताते हैं.
    • parameter एट्रिब्यूट, गतिविधि के लिए मिले Bundle अतिरिक्त डेटा में, exercise.name बीआईआई पैरामीटर को exerciseType से मैप करता है.

इनलाइन इन्वेंट्री की मदद से, बीआईआई पैरामीटर मैनेज करना

बीआईआई पैरामीटर, Assistant के उपयोगकर्ता की क्वेरी से लिए गए एलिमेंट को दिखाते हैं. उदाहरण के लिए, जब कोई उपयोगकर्ता कहता है, "Ok Google, ExampleApp पर रन शुरू करो", तो Assistant "रन" को एक्सट्रैक्ट कर लेती है exercise.name schema.org बीआईआई पैरामीटर में. कुछ बीआईआई के लिए, Assistant को बीआईआई पैरामीटर का मिलान, आपके ऐप्लिकेशन के हिसाब से आइडेंटिफ़ायर के सेट से करने के लिए कहा जा सकता है.

ऐसा करने के लिए, इनलाइन इन्वेंट्री एलिमेंट को बीआईआई पैरामीटर से बाइंड करें. इनलाइन इन्वेंट्री, इस्तेमाल की जा सकने वाली बीआईआई पैरामीटर वैल्यू का सेट होती है. जैसे, "दौड़ना", "हाइक", और "जॉग" और उनसे जुड़ा शॉर्टकट आईडी, जैसे कि EXERCISE_RUN. इन्वेंट्री बाइंडिंग की मदद से Assistant, ग्राहक को आइटम भेजने से जुड़ी आपकी गतिविधि के लिए, रॉ क्वेरी की वैल्यू के बजाय, मिलते-जुलते पैरामीटर के लिए शॉर्टकट आईडी पास कर पाती है.

exercise.name जैसे कुछ बीआईआई पैरामीटर को काम करने के लिए इनलाइन इन्वेंट्री की ज़रूरत होती है. इस पैरामीटर को मैनेज करने के लिए, shortcuts.xml में यहां दिए गए इन्वेंट्री shortcut एलिमेंट जोड़ें:

<!-- shortcuts.xml -->

<shortcuts>
  <shortcut
    android:shortcutId="running"
    android:shortcutShortLabel="@string/activity_running">
    <capability-binding android:key="actions.intent.START_EXERCISE">
      <parameter-binding
        android:key="exercise.name"
        android:value="@array/runningSynonyms"/>
    </capability-binding>
  </shortcut>

  <shortcut
    android:shortcutId="walking"
    android:shortcutShortLabel="@string/activity_walking">
    <capability-binding android:key="actions.intent.START_EXERCISE">
      <parameter-binding
        android:key="exercise.name"
        android:value="@array/walkingSynonyms"/>
    </capability-binding>
  </shortcut>

  <shortcut
    android:shortcutId="cycling"
    android:shortcutShortLabel="@string/activity_cycling">
    <capability-binding android:key="actions.intent.START_EXERCISE">
      <parameter-binding
        android:key="exercise.name"
        android:value="@array/cyclingSynonyms"/>
    </capability-binding>
  </shortcut>

  <capability> ... </capability>
</shortcuts>

पिछले कोड में, आपने ऐप्लिकेशन के साथ काम करने वाली कसरतों के लिए इनलाइन इन्वेंट्री को दिखाने वाले तीन शॉर्टकट तय किए हैं: दौड़ना, पैदल चलना, और साइकल चलाना. हर शॉर्टकट के लिए ये सुविधाएं उपलब्ध हैं:

  • capability-binding के हर एलिमेंट का android:key एट्रिब्यूट, उस सुविधा के लिए तय किए गए START_EXCERCISE बीआईआई के बारे में बताता है.
  • exercise.name बीआईआई पैरामीटर के लिए, हर शॉर्टकट बटन का parameter-binding एलिमेंट.

इनलाइन इन्वेंट्री समानार्थी शब्द जोड़ें

पिछले इन्वेंट्री शॉर्टकट में parameter-binding एलिमेंट के android:value एट्रिब्यूट, हर इन्वेंट्री एलिमेंट के लिए समानार्थी शब्दों वाले कलेक्शन से जुड़े हैं. समानार्थी शब्द, "दौड़ना", "जॉग", और "स्प्रिंट" जैसे किसी एलिमेंट के अलग-अलग टाइप चालू करते हैं उसी shortcutId को रेफ़र करें. प्रोजेक्ट के array.xml संसाधन में ये समानार्थी शब्द जोड़ें:

<!-- array.xml -->
<array name="runningSynonyms">
  <item>Run</item>
  <item>Jog</item>
  <item>Jogging</item>
  <item>Sprint</item>
</array>

<array name="walkingSynonyms">
  <item>Walk</item>
  <item>Hike</item>
  <item>Hiking</item>
</array>

<array name="cyclingSynonyms">
  <item>Biking</item>
  <item>Riding</item>
  <item>Pedaling</item>
</array>

आने वाले Android इंटेंट पूरे करें

Android इंटेंट, मैसेजिंग ऑब्जेक्ट हैं. Android किसी दूसरे ऐप्लिकेशन से कार्रवाई का अनुरोध करने के लिए इसका इस्तेमाल करता है. Assistant, उपयोगकर्ताओं की इन ज़रूरतों को पूरा करती है ट्रिगर की गई क्षमता में मौजूद कॉन्फ़िगरेशन की जानकारी से एक इंटेंट जनरेट करके वॉइस क्वेरी. START_EXERCISE सुविधा के इंटेंट पूरे करने के लिए, FitMainActivity टारगेट क्लास को अपडेट करें, ताकि आने वाले इंटेंट और बीआईआई पैरामीटर को हैंडल किया जा सके.

सबसे पहले, Intent.handleIntent फ़ंक्शन को इस कोड से बदलें:

//FitMainActivity.kt

private fun Intent.handleIntent() {
  when (action) {
    // When the BII is matched, Intent.Action_VIEW will be used
    Intent.ACTION_VIEW -> handleIntent(data)
    // Otherwise start the app as you would normally do.
    else -> showDefaultView()
  }
}

इसके बाद, नीचे दिए गए कोड के साथ क्लास में एक नया handleIntent फ़ंक्शन जोड़ें:

//FitMainActivity.kt

/**
 * Use extras provided by the intent to handle the different BIIs
 */

private fun handleIntent(data: Uri?) {
  // path is normally used to indicate which view should be displayed
  // i.e https://fit-actions.firebaseapp.com/start?exerciseType="Running" -> path = "start"
  var actionHandled = true

  val startExercise = intent?.extras?.getString(START_EXERCISE)
  // Add stopExercise variable here

  if (startExercise != null){
    val type = FitActivity.Type.find(startExercise)
    val arguments = Bundle().apply {
      putSerializable(FitTrackingFragment.PARAM_TYPE, type)
    }
    updateView(FitTrackingFragment::class.java, arguments)
  } // Add conditional for stopExercise
  else{
   // path is not supported or invalid, start normal flow.
   showDefaultView()

   // Unknown or invalid action
   actionHandled = false
  }
  notifyActionSuccess(actionHandled)
}

पिछले Intent.handleIntent फ़ंक्शन में, ACTION_VIEW ट्रिगर होने पर, ऐप्लिकेशन ऐक्शन इंटेंट डेटा को handleIntent फ़ंक्शन में पास किया जाता है. START_EXERCISE इंटेंट में बंडल किए गए बीआईआई पैरामीटर, intent?.extras?.getString(START_EXERCISE) से ऐक्सेस किए जाते हैं. बाकी फ़ंक्शन, चुने गए startExercise फ़िटनेस टाइप को दिखाने के लिए, FitTrackingFragment को अपडेट करता है.

अपने ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाई की जांच करें

ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयों के डेवलपमेंट के दौरान, आप टेस्ट डिवाइस पर अपनी कार्रवाइयों की झलक देखने के लिए Google Assistant प्लगिन का इस्तेमाल करते हैं. किसी Action के इंटेंट पैरामीटर की वैल्यू में बदलाव करने के लिए भी, प्लगिन का इस्तेमाल किया जा सकता है. इससे यह जांच की जा सकती है कि आपका ऐप्लिकेशन, आपके ऐप्लिकेशन के लिए Assistant का अनुरोध करने के लिए, उपयोगकर्ता के बोले गए अलग-अलग तरीकों को कैसे मैनेज करता है.

प्लगिन के साथ अपने ऐप्लिकेशन की कार्रवाई की जांच करने के लिए, यह तरीका अपनाएं:

  1. Run > चुनकर Android Studio में अपना ऐप्लिकेशन चलाएं ऐप्लिकेशन चलाएं या सबसे ऊपर मौजूद टूलबार में, Run आइकॉन पर क्लिक करें.
  2. टूल पर जाएं > ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयां > Google Assistant > ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयों की जांच करने वाला टूल.
  3. झलक बनाएं पर क्लिक करें. अगर कहा जाए, तो ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयों से जुड़ी नीतियों और सेवा की शर्तों को पढ़ें और स्वीकार करें.
  4. actions.intent.START_EXERCISE बिल्ट-इन इंटेंट चुनें.
  5. व्यायाम बॉक्स में, दौड़ना की डिफ़ॉल्ट वैल्यू को रहने दें.
  6. ऐप्लिकेशन ऐक्शन चलाएं पर क्लिक करें. पुष्टि करें कि Assistant ने कसरत के लिए ऐप्लिकेशन के टाइमर को डीप लिंक किया हो और टाइमर ने दौड़ने के लिए इस्तेमाल होने वाली कसरत शुरू कर दी हो.

आपने START_EXERCISE बीआईआई के ज़रिए ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयां शुरू कर दी हैं. बधाई हो! इसके बाद, हम उपयोगकर्ताओं को आपके ऐप्लिकेशन में दौड़ने वाली कसरत रोकने की सुविधा देंगे.

5. स्टॉप एक्सरसाइज़ बीआईआई की सुविधा जोड़ें

actions.intent.STOP_EXERCISE बीआईआई की मदद से उपयोगकर्ता, "Ok Google, ExampleApp पर मेरी दौड़ बंद करो" कहकर वर्कआउट सेशन को रोक सकते हैं. फ़िटनेस ऐप्लिकेशन में इस बीआईआई को लागू करने के लिए, shortcuts.xml में एक दूसरा capability जोड़ें:

<!-- shortcuts.xml -->

<capability android:name="actions.intent.STOP_EXERCISE">
  <intent
    android:action="android.intent.action.VIEW"
    android:targetPackage="PUT_YOUR_APPLICATION_ID_HERE"
    android:targetClass="com.devrel.android.fitactions.FitMainActivity">
    <!-- Eg. name = "Running" -->
    <parameter
        android:name="exercise.name"
        android:key="stopExercise"/>
  </intent>
</capability>

PUT_YOUR_APPLICATION_ID_HERE को अपने यूनीक applicationId से बदलें.

इनलाइन इन्वेंट्री की मदद से, बीआईआई पैरामीटर मैनेज करना

यह बीआईआई, START_EXERCISE बीआईआई के जैसे exercise.name पैरामीटर के साथ काम करता है. इससे उपयोगकर्ता यह तय कर पाते हैं कि उन्हें किस ऐक्टिव वर्कआउट को खत्म करना है. इसे चालू करने के लिए, shortcuts.xml में इन्वेंट्री शॉर्टकट एलिमेंट का दूसरा सेट जोड़ें:

<!-- shortcuts.xml -->

<shortcut
  android:shortcutId="running"
  android:shortcutShortLabel="@string/activity_running">
  <capability-binding android:key="actions.intent.STOP_EXERCISE">
      <parameter-binding
          android:key="exercise.name"
          android:value="@array/runningSynonyms"/>
  </capability-binding>
</shortcut>

<shortcut
  android:shortcutId="walking"
  android:shortcutShortLabel="@string/activity_walking">
  <capability-binding android:key="actions.intent.STOP_EXERCISE">
      <parameter-binding
          android:key="exercise.name"
          android:value="@array/walkingSynonyms"/>
  </capability-binding>
</shortcut>

<shortcut
  android:shortcutId="cycling"
  android:shortcutShortLabel="@string/activity_cycling">
  <capability-binding android:key="actions.intent.STOP_EXERCISE">
      <parameter-binding
          android:key="exercise.name"
          android:value="@array/cyclingSynonyms"/>
  </capability-binding>
</shortcut>

आने वाले Android इंटेंट पूरे करें

FitMainActivity क्लास को अपडेट करके, ऐप्लिकेशन को STOP_EXERCISE Android इंटेंट मैनेज करने की अनुमति दें. सबसे पहले, STOP_EXERCISE इंटेंट डेटा को होल्ड करने के लिए, handleIntent फ़ंक्शन में कोई वैरिएबल जोड़ें:

// FitMainActivity.kt

private fun handleIntent(data: Uri?) {
  val stopExercise = intent?.extras?.getString(STOP_EXERCISE)
  //...
}

इसके बाद, STOP_EXERCISE इंटेंट को मैनेज करने के लिए, handleIntent फ़ंक्शन के कंडिशनल लॉजिक को अपडेट करें:

// FitMainActivity.kt

private fun handleIntent(data: Uri?) {
  //...
  if (startExercise != null){
    val type = FitActivity.Type.find(startExercise)
    val arguments = Bundle().apply {
      putSerializable(FitTrackingFragment.PARAM_TYPE, type)
    }
    updateView(FitTrackingFragment::class.java, arguments)
  } // Add conditional for stopExercise
  <strong>
  } else if(stopExercise != null){
    // Stop the tracking service if any and return to home screen.
    stopService(Intent(this, FitTrackingService::class.java))
    updateView(FitStatsFragment::class.java)
  }
  </strong>
  //...
}

पिछले कोड में, आपने आने वाले Android इंटेंट में STOP_EXERCISE बीआईआई की जांच करने के लिए, handleIntent फ़ंक्शन को अपडेट किया था. उपलब्ध होने पर, फ़ंक्शन चालू टाइमर को बंद कर देता है और उपयोगकर्ता को होम स्क्रीन पर वापस भेज देता है.

अपने ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाई की जांच करें

Google Assistant प्लगिन का इस्तेमाल करके, ऐप्लिकेशन ऐक्शन को टेस्ट करें. इसके लिए, यह तरीका अपनाएं:

  1. Run > चुनकर Android Studio में अपना ऐप्लिकेशन चलाएं ऐप्लिकेशन चलाएं या सबसे ऊपर मौजूद टूलबार में, Run आइकॉन पर क्लिक करें.
  2. ऐप्लिकेशन में, नई "दौड़ना" शुरू करें व्यायाम.
  3. Android Studio में प्लगिन खोलें: टूल > पर जाएं ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयां > Google Assistant > ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयों की जांच करने वाला टूल.
  4. झलक बनाएं पर क्लिक करें.
  5. actions.intent.STOP_EXERCISE बिल्ट-इन इंटेंट चुनें.
  6. व्यायाम बॉक्स में, दौड़ना की डिफ़ॉल्ट वैल्यू को रहने दें.
  7. ऐप्लिकेशन ऐक्शन चलाएं पर क्लिक करें. पुष्टि करें कि Assistant आपने कसरत बंद कर दी है और आपको होम स्क्रीन पर वापस ले आई है.

6. अगले चरण

बधाई हो!

अब आपको Assistant में पहले से मौजूद इंटेंट का इस्तेमाल करके, Android ऐप्लिकेशन को आवाज़ से चालू करने का तरीका समझ आ गया है. इस कोडलैब में, आपने ये सीखा:

  • Assistant का इस्तेमाल करके, उपयोगकर्ताओं को ऐप्लिकेशन की खास सुविधाओं के बारे में जानकारी देने का तरीका.
  • इनलाइन इन्वेंट्री को इस्तेमाल करने का तरीका.
  • Google Assistant प्लगिन का इस्तेमाल करके, बीआईआई की जांच करने का तरीका.

आगे क्या करना है

यहां से, अपने फ़िटनेस ऐप्लिकेशन को और बेहतर बनाया जा सकता है. पूरे हो चुके प्रोजेक्ट का रेफ़रंस देने के लिए, GitHub पर मुख्य ब्रांच देखें.

ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयों की सुविधा का इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, यहां कुछ सुझाव दिए गए हैं:

Actions on Google का इस्तेमाल जारी रखने के लिए, इन संसाधनों को एक्सप्लोर करें:

हमारी नई सूचनाओं के साथ बने रहने के लिए, हमें Twitter @ActionsOnGoogle पर फ़ॉलो करें. साथ ही, आपने जो बनाया है उसे शेयर करने के लिए #appactions पर ट्वीट करें!

राय जानने के लिए सर्वे

आखिर में, इस कोडलैब के साथ अपने अनुभव के बारे में सुझाव देने के लिए, कृपया यह सर्वे भरें.