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

पहली इमेज. इसके लिए विजेट लॉन्च किया जा रहा है: GET_EXERCISE_OBSERVATION.

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

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

फ़ायदे

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

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

Assistant विजेट कैसे दिखाती है

उपयोगकर्ता इन दो तरीकों से Assistant पर विजेट शुरू कर सकते हैं:

  • विजेट के नाम से साफ़ तौर पर अनुरोध किया जा रहा है.
  • Assistant से कोई ऐसी क्वेरी बोलना जिससे बिल्ट-इन इंटेंट (बीआईआई) या कस्टम इंटेंट को कॉन्फ़िगर किया गया है विजेट को पूरा करने की सुविधा.

अश्लील बातचीत शुरू करना

इंस्टॉल किए गए किसी भी ऐप्लिकेशन के लिए विजेट को शुरू करने के लिए, उपयोगकर्ता Assistant से कह सकते हैं इस तरह की चीज़ें:

  • "Ok Google, ExampleApp विजेट दिखाओ."
  • "ExampleApp के विजेट."

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

ग्राहक की कार्रवाई

अपने विजेट का इस्तेमाल इसलिए करें, ताकि वे उन्हें आसानी से ढूंढ पाएं Assistant पर की गई भाषा से जुड़ी क्वेरी. उदाहरण के लिए, आप जब भी कोई उपयोगकर्ता आपके डिवाइस में GET_EXERCISE_OBSERVATION बीआईआई को ट्रिगर करता है "Ok Google, मैंने इस हफ़्ते कितने मील दौड़े हैं ExampleApp?" खोज को आसान बनाने के अलावा, विजेट को ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयों के ये फ़ायदे हैं:

  • पैरामीटर का ऐक्सेस: Assistant, एक्सट्रैक्ट किए गए इंटेंट पैरामीटर उपलब्ध कराती है आपके विजेट पर जाने की सुविधा चालू करके, अपने हिसाब से जवाब.
  • पसंद के मुताबिक टीटीएस के बारे में जानकारी: लिखाई को बोली में बदलने वाली (टीटीएस) स्ट्रिंग दी जा सकती है ताकि Assistant आपका विजेट दिखाते समय सूचना दे सके.
  • विजेट पिन करने की सुविधा: Assistant, स्क्रीन के आस-पास यह विजेट जोड़ें बटन दिखाती है विजेट की मदद से, लोगों को आपके विजेट को अपने लॉन्चर पर आसानी से पिन करने की सुविधा मिलती है.

विजेट को पूरा करने की सुविधा लागू करें

अपने इंटेंट के लिए विजेट को पूरा करने की सुविधा लागू करने के लिए, यह तरीका अपनाएं:

  1. Android विजेट को लागू करने के लिए, यहां दिया गया तरीका अपनाएं कोई आसान विजेट बनाएं.
  2. अपने ऐप्लिकेशन की shortcuts.xml संसाधन फ़ाइल में, <app-widget> एलिमेंट में शामिल है ग्राहक को आइटम भेजने की जानकारी और बीआईआई <parameter> टैग. अपनी पैरामीटर मैनेज करने के लिए विजेट.
  3. ज़रूरी विजेट एक्सटेंशन लाइब्रेरी जोड़ें, ताकि Assistant, आपके विजेट पर बीआईआई के नाम और पैरामीटर भेजती है. इससे यह सुविधा भी मिलती है पसंद के मुताबिक टीटीएस के बारे में जानकारी और विजेट को पिन करने की सुविधा काम करता है.

इस सेक्शन में, shortcuts.xml के लिए <app-widget> स्कीमा के बारे में बताया गया है.

विजेट स्कीमा

<app-widget> एलिमेंट को फ़ुलफ़िलमेंट के तौर पर बताया गया है shortcuts.xml में <capability> एलिमेंट. उनके लिए इनकी ज़रूरत होती है: एट्रिब्यूट, जब तक कि 'ज़रूरी नहीं' न बताया गया हो:

`शॉर्टकटs.xml` टैगइसमें शामिलविशेषताएं
<app-widget> <capability>
  • android:identifier
  • android:targetClass
<parameter> <app-widget>
<extra> <app-widget>
  • android:name (सिर्फ़ टीटीएस के लिए लागू)
  • android:value (वैकल्पिक)

विजेट स्कीमा की जानकारी

<ऐप्लिकेशन-विजेट>

टॉप-लेवल का विजेट फ़ुलफ़िलमेंट एलिमेंट.

विशेषताएं:

  • android:identifier: इस फ़ुलफ़िलमेंट के लिए आइडेंटिफ़ायर. इस मान को यह <app-widget> और <intent> फ़ुलफ़िलमेंट में अलग-अलग होनी चाहिए <capability> में तय किए गए एलिमेंट हैं.
  • android:targetClass: इसके लिए AppWidgetProvider की पूरी क्लास का नाम इंटेंट को हैंडल करें.

<पैरामीटर>

इंटेंट <parameter> वैल्यू पर बीआईआई पैरामीटर मैप करें. आप शून्य को परिभाषित कर सकते है या हर <app-widget> एलिमेंट के लिए ज़्यादा पैरामीटर. कार्रवाई के दौरान, Assistant विजेट इंस्टेंस के लिए अतिरिक्त चीज़ों को की-वैल्यू पेयर के तौर पर अपडेट करके पैरामीटर पास करता है, नीचे दिए गए फ़ॉर्मैट में:

  • कुंजी: पैरामीटर के लिए तय किया गया android:key.
  • वैल्यू: बीआईआई, उपयोगकर्ता के वॉइस इनपुट से ली जाती है.

आप getAppWidgetOptions() को कॉल करके ये अतिरिक्त सुविधाएं ऐक्सेस कर सकते हैं: AppWidgetManager ऑब्जेक्ट, जो यह दिखाता है कि Bundle का नाम है ट्रिगर करने वाला बीआईआई और उसके पैरामीटर हैं. यहां जाएं: जानकारी के लिए, पैरामीटर वैल्यू एक्सट्रैक्ट करना.

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

<अतिरिक्त>

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

  • android:name: "hasTts"
  • android:value: "true"

नमूना कोड

shortcuts.xml फ़ाइल का यह उदाहरण, विजेट को दिखाता है फ़ुलफ़िलमेंट कॉन्फ़िगरेशन GET_EXERCISE_OBSERVATION बीआईआई की सुविधा:

<capability android:name="actions.intent.GET_EXERCISE_OBSERVATION">
  <app-widget
    android:identifier="GET_EXERCISE_OBSERVATION_1"
    android:targetClass="com.exampleapp.providers.exampleAppWidgetProvider"
    android:targetPackage="com.exampleapp">
    <parameter
      android:name="exerciseObservation.aboutExercise.name"
      android:key="exercisename">
    </parameter>
    <extra android:name="hasTts" android:value="true"/>
  </app-widget>
</capability>

एक से ज़्यादा <app-widget> एलिमेंट तय किए जा सकते हैं या दोनों एलिमेंट का इस्तेमाल किया जा सकता है हर क्षमता के लिए <app-widget> और <intent> एलिमेंट. इस तरीके से, आपको पैरामीटर के अलग-अलग कॉम्बिनेशन के आधार पर कस्टमाइज़ किया गया अनुभव उपलब्ध कराते हैं उपयोगकर्ताओं की ओर से उपलब्ध कराया गया. उदाहरण के लिए, अगर उपयोगकर्ता ड्रॉप-ऑफ़ जगह की जानकारी नहीं देता है अपनी क्वेरी में, आप उन्हें अपने ऐप्लिकेशन में दिखाई देने वाली गतिविधि पर भेज सकते हैं पिक-अप और ड्रॉप-ऑफ़ जगहें सेट करने के लिए विकल्प. ज़्यादा जानकारी के लिए, ज़्यादा जानकारी के लिए फ़ॉलबैक इंटेंट सेक्शन फ़ॉलबैक इंटेंट तय करने के बारे में है.

पैरामीटर वैल्यू एक्सट्रैक्ट करना

नीचे दिए गए सैंपल AppWidgetProvider क्लास में, प्राइवेट फ़ंक्शन updateAppWidget() का इस्तेमाल, विजेट विकल्प Bundle:

Kotlin

package com.example.exampleapp

//... Other module imports
import com.google.assistant.appactions.widgets.AppActionsWidgetExtension

/**
 * Implementation of App Widget functionality.
 */
class MyAppWidget : AppWidgetProvider() {
    override fun onUpdate(
        context: Context,
        appWidgetManager: AppWidgetManager,
        appWidgetIds: IntArray
    ) {
        // There might be multiple widgets active, so update all of them
        for (appWidgetId in appWidgetIds) {
            updateAppWidget(context, appWidgetManager, appWidgetId)
        }
    }

    private fun updateAppWidget(
        context: Context,
        appWidgetManager: AppWidgetManager,
        appWidgetId: Int
    ) {
        val widgetText: CharSequence = context.getString(R.string.appwidget_text)

        // Construct the RemoteViews object
        val views = RemoteViews(context.packageName, R.layout.my_app_widget)
        views.setTextViewText(R.id.appwidget_text, widgetText)

        // Extract the name and parameters of the BII from the widget options
        val optionsBundle = appWidgetManager.getAppWidgetOptions(appWidgetId)
        val bii = optionsBundle.getString(AppActionsWidgetExtension.EXTRA_APP_ACTIONS_BII) // "actions.intent.CREATE_TAXI_RESERVATION"
        val params = optionsBundle.getBundle(AppActionsWidgetExtension.EXTRA_APP_ACTIONS_PARAMS)
        if (params != null && params.containsKey("dropoff")) {
            val dropoffLocation = params.getString("dropoff")
            // Build your RemoteViews with the extracted BII parameter
            // ...
        }
        appWidgetManager.updateAppWidget(appWidgetId, views)
    }
}

Java

package com.example.exampleapp;

//... Other module imports
import com.google.assistant.appactions.widgets.AppActionsWidgetExtension;

/**
 * Implementation of App Widget functionality.
 */
public class MyAppWidget extends AppWidgetProvider {

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        // There might be multiple widgets active, so update all of them
        for (int appWidgetId : appWidgetIds) {
            updateAppWidget(context, appWidgetManager, appWidgetId);
        }
    }

    private static void updateAppWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId) {

        CharSequence widgetText = context.getString(R.string.appwidget_text);

        // Construct the RemoteViews object
        RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.my_app_widget);
        views.setTextViewText(R.id.appwidget_text, widgetText);

        // Extract the name and parameters of the BII from the widget options
        Bundle optionsBundle = appWidgetManager.getAppWidgetOptions(appWidgetId);
        String bii =
                optionsBundle.getString(AppActionsWidgetExtension.EXTRA_APP_ACTIONS_BII); // "actions.intent.CREATE_TAXI_RESERVATION"
        Bundle params =
                optionsBundle.getBundle(AppActionsWidgetExtension.EXTRA_APP_ACTIONS_PARAMS);

        if (params != null && params.containsKey(("dropoff"))){
            String dropoffLocation = params.getString("dropoff");
            // Build your RemoteViews with the extracted BII parameter
            // ...
        }

        appWidgetManager.updateAppWidget(appWidgetId, views);
    }
}

विजेट एक्सटेंशन लाइब्रेरी

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

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

शुरू करने के लिए, लाइब्रेरी को आपके ऐप्लिकेशन मॉड्यूल के लिए build.gradle फ़ाइल:

dependencies {
    //...
    implementation "com.google.assistant.appactions:widgets:0.0.1"
}

पसंद के मुताबिक परिचय

विजेट एक्सटेंशन लाइब्रेरी आयात करने के बाद, आप कस्टम TTS प्रदान कर सकते हैं आपके विजेट के बारे में जानकारी. विजेट की डेफ़िनिशन को AppWidgetProvider, अपने IDE में क्लास खोलें और विजेट एक्सटेंशन को इंपोर्ट करें लाइब्रेरी:

Kotlin

import com.google.assistant.appactions.widgets.AppActionsWidgetExtension

Java

import com.google.assistant.appactions.widgets.AppActionsWidgetExtension;
इसके बाद, अपने परिचय स्ट्रिंग को परिभाषित करने के लिए लाइब्रेरी का इस्तेमाल करें और विजेट, जैसा कि इस `ExampleAppWidget` में दिखाया गया है:

Kotlin

package com.example.exampleapp

//... Other module imports
import com.google.assistant.appactions.widgets.AppActionsWidgetExtension

/**
 * Implementation of App Widget functionality.
 */
object MyAppWidget : AppWidgetProvider() {
    fun updateAppWidget(
        context: Context?,
        appWidgetManager: AppWidgetManager,
        appWidgetId: Int
    ) {
        val appActionsWidgetExtension = AppActionsWidgetExtension.newBuilder(appWidgetManager)
            .setResponseSpeech("Hello world") // TTS to be played back to the user
            .setResponseText("Hello world!") // Response text to be displayed in Assistant
            .build()

        // Update widget with TTS
        appActionsWidgetExtension.updateWidget(appWidgetId)

        // Update widget UI
        appWidgetManager.updateAppWidget(appWidgetId, views)
    }
}

Java

package com.example.exampleapp;

//... Other module imports
import com.google.assistant.appactions.widgets.AppActionsWidgetExtension;

/**
 * Implementation of App Widget functionality.
 */
public class MyAppWidget extends AppWidgetProvider {

  static void updateAppWidget(Context context, AppWidgetManager appWidgetManager,
    int appWidgetId) {

    AppActionsWidgetExtension appActionsWidgetExtension = AppActionsWidgetExtension.newBuilder(appWidgetManager)
      .setResponseSpeech("Hello world")  // TTS to be played back to the user
      .setResponseText("Hello world!")  // Response text to be displayed in Assistant
      .build();

      // Update widget with TTS
      appActionsWidgetExtension.updateWidget(appWidgetId);

      // Update widget UI
      appWidgetManager.updateAppWidget(appWidgetId, views);
    }

}

टीटीएस की स्टाइल के लिए सुझाव

अपनी पसंद के मुताबिक बनाए गए विजेट को ऑप्टिमाइज़ करने के लिए, नीचे दिए गए स्टाइल के सुझावों का इस्तेमाल करें टीटीएस और दिखाए गए प्रॉम्प्ट के बारे में जानकारी.

सुझाव सुझाई गई वैल्यू: नहीं सुझाया गया
कॉन्ट्रैक्शन
टीटीएस प्रॉम्प्ट में कम शब्दों का इस्तेमाल करें. बिना सिकुड़ने वाले मैसेज की आवाज़ यह स्वाभाविक और आम बोलचाल वाली भाषा नहीं है. बोले जा रहे शब्द जैसे कि "नहीं" और "ऐसा न करें" दंडनीय और सख्त कार्रवाई की जा सकती है.
ResponseSpeech (टीटीएस)
माफ़ करें, मुझे कोई बुकिंग नहीं मिली.

ResponseText
माफ़ करें, मुझे कोई बुकिंग नहीं मिली.
ResponseSpeech (टीटीएस)
माफ़ करें, मुझे कोई बुकिंग नहीं मिली.

ResponseText
माफ़ करें, मुझे कोई बुकिंग नहीं मिली.
कॉमा
तीन या उससे ज़्यादा आइटम की सूचियों में सीरियल कॉमा का इस्तेमाल करके, साफ़ तौर पर जानकारी दें. सीरियल कॉमा के बिना, आपकी सूची में अलग-अलग आइटम गलत तरीके से सुना या ग्रुप के तौर पर पढ़ा गया. उदाहरण के लिए, "डैफ़ोडिल, डेज़ी और सूरजमुखी" “डेज़ी और सनफ़्लावर” एक साथ सुनाई देते हैं. "डैफ़ोडिल, डेज़ी, और सनफ़्लावर" में तीनों साफ़ तौर पर अलग-अलग हैं.
ResponseSpeech (टीटीएस)
इनमें पीले गुलाब, डैफ़ोडिल, डेज़ी, और सूरजमुखी के फूल सबसे लोकप्रिय हैं.

ResponseText
इनमें पीले गुलाब, डैफ़ोडिल, डेज़ी, और सूरजमुखी के फूल सबसे लोकप्रिय हैं.
ResponseSpeech (टीटीएस)
इनमें पीले गुलाब, डैफ़ोडिल, डेज़ी, और सूरजमुखी के फूल सबसे लोकप्रिय हैं.

ResponseText
इनमें पीले गुलाब, डैफ़ोडिल, डेज़ी, और सूरजमुखी के फूल सबसे लोकप्रिय हैं.
न्यूमरल्स
विज़ुअल कॉन्टेंट को ज़्यादा दिलचस्प बनाने के लिए, टेक्स्ट के बजाय अंकों का इस्तेमाल करें.
ResponseSpeech (टीटीएस)
आपका ब्लड प्रेशर 100 से 80 के ऊपर है.

ResponseText
आपका ब्लड प्रेशर 100/80 है.
ResponseSpeech (टीटीएस)
आपका ब्लड प्रेशर 100/80 है.

ResponseText
आपका ब्लड प्रेशर एक सौ अस्सी से ज़्यादा है.
चिह्न
विज़ुअल कॉन्टेंट को बेहतर बनाने के लिए, टेक्स्ट के बजाय खास निशानों का इस्तेमाल करें एक नज़र में देखने लायक.
ResponseSpeech (टीटीएस)
आपकी पिछली खरीदारी 24.65 डॉलर में की गई थी.

ResponseText
आपकी पिछली खरीदारी 24.65 डॉलर में की गई थी.
ResponseSpeech (टीटीएस)
आपकी पिछली खरीदारी चौबीस डॉलर और पैंसठ सेंट में हुई थी.

ResponseText
आपकी पिछली खरीदारी चौबीस डॉलर और पैंसठ सेंट में हुई थी.
सुंदर आइटम से बचें
बारीकियों से जवाब अलग और औपचारिक लगते हैं. उन्हें छोड़ें और दोस्ताना और अनौपचारिक तरीके से बातचीत करना.
ResponseSpeech (टीटीएस)
आपका ऑर्डर डिलीवर हो गया है.

ResponseText
आपका ऑर्डर डिलीवर हो गया है.
ResponseSpeech (टीटीएस)
बिलकुल, मैं आपको यह बता सकती हूं. आपका ऑर्डर डिलीवर हो गया है.

ResponseText
बिलकुल, मैं आपको यह बता सकती हूं. आपका ऑर्डर डिलीवर हो गया है.
विस्मयादिबोधक चिह्नों से बचें
इन्हें चिल्लाने के तौर पर देखा जा सकता है.
ResponseSpeech (टीटीएस)
आज आपने 1.5 मील दौड़ी.

ResponseText
आज आपने 1.5 मील दौड़ी.
ResponseSpeech (टीटीएस)
आज आपने 1.5 मील दौड़ी!

ResponseText
आज आपने 1.5 मील दौड़ी!
समय
अंकों का इस्तेमाल करें: "5:15," "पांच पंद्रह" के बजाय या "पांच के बाद तिमाही". 12 घंटे की घड़ी के लिए, AM या PM का इस्तेमाल करें.
ResponseSpeech (टीटीएस)
आपकी डिलीवरी सुबह 8:15 बजे तक पहुंच जानी चाहिए.

ResponseText
आपकी डिलीवरी सुबह 8:15 बजे तक हो जानी चाहिए.
ResponseSpeech (टीटीएस)
आपकी डिलीवरी आज सुबह 8 बजे के बाद 15 मिनट तक पहुंच जानी चाहिए.

ResponseText
आपकी डिलीवरी आज सुबह 8 बजे के बाद 15 मिनट तक पहुंच जानी चाहिए.
मोनोलॉग में लॉन्च न करें
जानकारी दें, लेकिन जवाब छोटे रखें. ज़बरदस्ती हाथ से काम न करें उपयोगकर्ता को मिलने वाले फ़ायदे के बारे में साफ़ तौर पर बताए बिना.
ResponseSpeech (टीटीएस)
पिछले महीने आपने 159 घंटे बिजली का इस्तेमाल किया.

ResponseText
पिछले महीने आपने 159 घंटे बिजली का इस्तेमाल किया.
ResponseSpeech (टीटीएस)
ऊर्जा की बचत करना पृथ्वी और पर्यावरण के लिए बहुत ज़रूरी है. पिछले महीने तक आपने 159 घंटे तक ऊर्जा का इस्तेमाल किया. इस महीने आपने 58 घंटे ऊर्जा.

ResponseText
ऊर्जा की बचत करना पृथ्वी और पर्यावरण के लिए बहुत ज़रूरी है. पिछले महीने तक आपने 159 घंटे तक ऊर्जा का इस्तेमाल किया. इस महीने आपने 58 घंटे ऊर्जा.
छोटे और आसान शब्दों का इस्तेमाल करना
सरल और सरल भाषा सबसे ज़्यादा पसंद की जाती है, जिससे लोग आसानी से इसे समझ सकते हैं हर बैकग्राउंड के लोग.
ResponseSpeech (टीटीएस)
आपकी ब्लड शुगर की पिछली रीडिंग 126 थी.

ResponseText
आपकी पिछली ब्लड शुगर की रीडिंग 126 मि॰ग्रा॰/डे॰ली॰ थी.
ResponseSpeech (टीटीएस)
पेनल्टीमेट ब्लड ग्लूकोज़ का लेवल 126 था.

ResponseText
पेनल्टीमेट ब्लड ग्लूकोज़ का लेवल 126 था.

लॉन्चर को पिन करने की सुविधा

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

<application>
  <receiver android:name="com.google.assistant.appactions.widgets.pinappwidget.PinAppWidgetBroadcastReceiver"
    android:exported="false">
    <intent-filter>
      <action android:name="com.google.assistant.appactions.widgets.COMPLETE_PIN_APP_WIDGET" />
    </intent-filter>
  </receiver>
  <service
    android:name=
    "com.google.assistant.appactions.widgets.pinappwidget.PinAppWidgetService"
    android:enabled="true"
    android:exported="true">
    <intent-filter>
      <action
        android:name="com.google.assistant.appactions.widgets.PIN_APP_WIDGET" />
    </intent-filter>
  </service>
</application>

इन्वेंट्री की उपलब्धता

इनलाइन इन्वेंट्री या वेब इन्वेंट्री के साथ काम करने वाले बीआईआई, इन शर्तों को बढ़ा सकते हैं आपके विजेट को पूरा करने की सूची.

इनलाइन इन्वेंट्री

सैंपल shortcuts.xml फ़ाइल में मौजूद यह कोड दिखाता है कि START_EXERCISE बीआईआई की सुविधा इनलाइन इन्वेंट्री और विजेट को पूरा करने के लिए कॉन्फ़िगर किया गया:

<capability
  android:name="actions.intent.START_EXERCISE">
  <app-widget
    android:identifier="START_EXERCISE_1"
    android:targetClass="com.example.exampleapp.StartExerciseAppWidgetProvider">
    <parameter
      android:name="exercise.name"
      android:key="exerciseName"
      app:shortcutMatchRequired="true">
    </parameter>
  </app-widget>
</capability>

<shortcut android:shortcutId="RunningShortcut">
  <intent
    android:action="android.intent.action.VIEW"
    android:targetClass="com.example.exampleapp.StartExcerciseActivity" />
  <capability-binding
    android:capability="actions.intent.START_EXERCISE"
    android:parameter="exercise.name"
    android:value="running;runs" />
</shortcut>

पिछले सैंपल में, जब कोई उपयोगकर्ता सवाल पूछकर इस सुविधा को ट्रिगर करता है Assistant, “ExampleApp के साथ दौड़ना शुरू करें,” <app-widget> फ़ुलफ़िलमेंट में यह की-वैल्यू पेयर शामिल है:

  • कुंजी = “exerciseName”
  • वैल्यू = “RunningShortcut”

वेब इन्वेंट्री

shortcuts.xml फ़ाइल के सैंपल में मौजूद यह कोड, 'कैबिलिटी' में वेब इन्वेंट्री और विजेट को पूरा करने की सुविधा चालू की गई:

<shortcuts>
  <capability
    android:name="actions.intent.START_EXERCISE">
    <app-widget
      android:identifier="START_EXERCISE_1"
      android:targetClass="com.example.exampleapp.CreateTaxiAppWidgetProvider">
      <parameter
        android:name="exercise.name"
        android:key="exerciseName"
        android:mimeType="text/*">
        <data android:pathPattern="https://exampleapp.com/exercise/.*" />
      </parameter>
    </app-widget>
  </capability>
</shortcuts>

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

ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयों की जांच करने वाले टूल का इस्तेमाल करें. यह Google Assistant प्लगिन की एक सुविधा है, जिसका Android Studio का इस्तेमाल करके, किसी फ़िज़िकल या वर्चुअल डिवाइस पर विजेट की जांच की जा सकती है. इस्तेमाल करने के लिए तो इन चरणों का पालन करें:

  1. अपने टेस्ट डिवाइस को ऐप्लिकेशन के साथ कनेक्ट करें.
  2. Android Studio में, टूल > पर जाएं ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयां > ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयों की जांच टूल.
  3. झलक बनाएं पर क्लिक करें.
  4. Android Studio का इस्तेमाल करके, अपने टेस्ट डिवाइस पर ऐप्लिकेशन चलाएं.
  5. ऐप्लिकेशन की ख़ास सुविधाओं के लिए कार्रवाई को आज़माने के लिए, अपने टेस्ट डिवाइस पर Assistant ऐप्लिकेशन का इस्तेमाल करें. इसके लिए उदाहरण के लिए, आप कुछ ऐसा कह सकते हैं "Ok Google, मैंने कितने मील चल लिए हैं इस हफ़्ते ExampleApp पर?"
  6. अपने ऐप्लिकेशन के व्यवहार को देखें या Android Studio डीबगर का इस्तेमाल करके, नतीजे की पुष्टि करें.

क्वालिटी के लिए दिशा-निर्देश

यह सेक्शन उन अहम शर्तों और सबसे सही तरीकों को हाइलाइट करता है जो ऐप्लिकेशन की खास सुविधाओं के लिए कार्रवाइयों को विजेट के साथ इंटिग्रेट किया जाता है.

विजेट का कॉन्टेंट

  • (ज़रूरी है) अपने विजेट में विज्ञापन न दिखाएं.
  • विजेट के कॉन्टेंट पर फ़ोकस, मकसद को पूरा करने पर करें. ये काम न करें एक विजेट से कई ज़रूरतों को पूरा करने या बिना काम का कॉन्टेंट जोड़ने की कोशिश करें.

ऑथेंटिकेशन मैनेज करना

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

फ़ॉलबैक इंटेंट

  • (ज़रूरी है) अपने shortcuts.xml में, हमेशा फ़ॉलबैक दें आपके विजेट को पूरा करने के अलावा, <intent> दी गई क्षमता. फ़ॉलबैक इंटेंट ऐसा <intent> एलिमेंट है जिसकी ज़रूरत नहीं होती <parameter> वैल्यू.

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

  • अपने ऐप्लिकेशन को सही स्क्रीन पर खोलने के लिए, फ़ॉलबैक इंटेंट का इस्तेमाल करें, यह होम स्क्रीन नहीं है.

सैंपल shortcuts.xml फ़ाइल में मौजूद यह कोड दिखाता है कि प्राइमरी ऐक्शन के साथ काम करने वाला <capability>, फ़ॉलबैक <intent> <app-widget> फ़ुलफ़िलमेंट:

<shortcuts>
  <capability
    android:name="actions.intent.CREATE_TAXI_RESERVATION">
    <!-- Widget with required parameter, specified using the "android:required" attribute. -->
    <app-widget
      android:identifier="CREATE_TAXI_RESERVATION_1"
      android:targetClass="com.example.myapplication.CreateTaxiAppWidgetProvider">
      <parameter
        android:name="taxiReservation.dropoffLocation.name"
        android:key="dropoff"
        android:required="true">
      </parameter>
    </app-widget>
    <!-- Fallback intent with no parameters required to successfully execute. -->
    <intent
      android:identifier="CREATE_TAXI_RESERVATION_3"
      android:action="myapplication.intent.CREATE_TAXI_RESERVATION_1"
      android:targetClass="com.example.myapplication.TaxiReservationActivity">
    </intent>
  </capability>
</shortcuts>

Google Play पर मौजूद डेटा की जानकारी

इस सेक्शन में असली उपयोगकर्ता के उस डेटा की सूची दी गई है जिसे नए वर्शन के ज़रिए इकट्ठा किया गया है विजेट एक्सटेंशन लाइब्रेरी.

यह SDK टूल, डेवलपर के दिए हुए लिखाई को बोली में बदलने (टीटीएस) वाले ऐसे जवाब भेजता है जो उपयोगकर्ता के लिए, Assistant की आवाज़ का इस्तेमाल करके Google Assistant ने सूचना दी टेक्नोलॉजी. Google यह जानकारी सेव नहीं करता.

ऐप्लिकेशन ऐक्शन ये भी हो सकते हैं नीचे दिए गए कामों के लिए क्लाइंट ऐप्लिकेशन का मेटाडेटा इकट्ठा करें:

  • SDK टूल के अलग-अलग वर्शन को अपनाने की दर पर नज़र रखने के लिए.
  • सभी ऐप्लिकेशन में SDK टूल की सुविधा के इस्तेमाल का हिसाब लगाने के लिए.