![](https://developer.android.google.cn/static/guide/app-actions/images/Fitness4-widget.png?authuser=0000&hl=ar)
GET_EXERCISE_OBSERVATION
بالنسبة إلى العديد من الأهداف، يكون أفضل ردّ هو تقديم إجابة بسيطة ومختصرة أو تأكيد أو تجربة تفاعلية سريعة للمستخدم. يمكنك عرض تطبيق Android المصغّر في "مساعد Google" لتحقيق هذه الأنواع من الأهداف
يتناول هذا الدليل كيفية تنفيذ طلبات مستخدمي "مساعد Google" باستخدام التطبيقات المصغّرة وطريقة تنفيذ هذه الإجراءات. تحسين تجربة استخدام التطبيق المصغّر في "مساعد Google" باستخدام خدمة "مهامّ في التطبيقات" مكتبة إضافات التطبيقات المصغّرة:
المزايا
التطبيقات المصغّرة هي عروض مصغّرة للتطبيقات يمكن تضمينها في نظام التشغيل Android. الأسطح مثل مشغّل التطبيقات أو شاشة القفل باستخدام خدمة "مهامّ في التطبيقات"، يمكنك زيادة تأثير تطبيقاتك المصغّرة من خلال جعلها مؤهَّلة للعرض في "مساعد Google":
- الاستكشاف: عرض الأدوات بشكل استباقي استجابةً لطلبات المستخدمين لطلبات البحث باللغة الطبيعية.
- التفاعل: يمكنك عرض التطبيقات المصغّرة في سياقات بدون لمس الجهاز، مثلاً عند يقدّم "مساعد Google" النتائج الشخصية على شاشة القفل وعلى Android Auto:
- الاحتفاظ بالبيانات: السماح للمستخدمين بتثبيت الأدوات المعروضة في "مساعد Google" على مشغّل التطبيقات تتطلب وظيفة التثبيت مكتبة إضافات التطبيقات المصغّرة:
آلية "مساعد Google" في عرض التطبيقات المصغّرة
هناك طريقتان يمكن للمستخدمين من خلالها استدعاء التطبيقات المصغّرة على "مساعد Google":
- طلب تطبيق مصغّر صراحةً حسب الاسم.
- عند إعطاء "مساعد Google" طلب بحث، يؤدّي ذلك إلى تشغيل هدف مضمّن (BII) أو جمهور مخصّص حسب النية بالشراء تم ضبطه من أجل تنفيذ الأداة.
استدعاء صريح
لاستدعاء التطبيقات المصغّرة بشكل صريح لأي تطبيق مثبَّت، يمكن للمستخدمين طلب المساعدة من "مساعد Google" أشياء مثل:
- "Ok Google، أريد عرض تطبيق ExampleApp المصغّر"
- "التطبيقات المصغّرة من ExampleApp".
يعرض "مساعد Google" هذه التطبيقات المصغّرة مع مقدمة عامة: "ExampleApp" يقول، إليك تطبيق مصغّر". يعرض "مساعد Google" في الأصل التطبيقات المصغّرة المطلوبة بهذه الطريقة بدون أي مجهود من مطور التطبيق، فإن طريقة الاستدعاء هذه يتطلب أن يكون لدى المستخدم معرفة صريحة بالأداة لطلبها. إلى لتبسيط اكتشاف التطبيق المصغَّر، واستخدام طريقة تنفيذ الأهداف الموضحة بالتفصيل في القسم التالي.
تحقيق النية
يمكنك تسهيل العثور على التطبيقات المصغّرة من خلال استخدامها لتوفير
الطلبات اللغوية التي يُجريها المستخدمون على "مساعد Google" على سبيل المثال، يمكنك إرجاع
تطبيق مصغّر عندما يشغّل المستخدم GET_EXERCISE_OBSERVATION
BII في
في تطبيق اللياقة البدنية من خلال قول: "Ok Google، كم ميلاً ركضت هذا الأسبوع في
ExampleApp؟" بالإضافة إلى تبسيط عملية الاكتشاف، يمكن دمج التطبيقات المصغّرة مع
توفّر خدمة "مهامّ في التطبيقات" المزايا التالية:
- الوصول إلى المَعلمة: يوفّر "مساعد Google" مَعلمات الغرض التي تم استخراجها. من طلب بحث المستخدم إلى الأداة، مما يتيح ردود مخصّصة
- مقدّمات مخصّصة لميزة "تحويل النص إلى كلام" (TTS): يمكنك توفير سلسلة تعمل على تحويل النص إلى كلام. لكي يعلن "مساعد Google" عند عرض تطبيقك المصغّر
- تثبيت التطبيقات المصغّرة: يعرض "مساعد Google" زر إضافة هذا التطبيق المصغّر بالقرب من تطبيقك المُصغَّر، ما يتيح للمستخدمين تثبيت التطبيقات المصغّرة بسهولة في مشغِّل التطبيقات.
تنفيذ التطبيقات المصغّرة
لتنفيذ التطبيقات المصغّرة لأهدافك، يُرجى اتّباع الخطوات التالية:
- استخدِم تطبيق Android المصغّر باتّباع الخطوات الموضّحة في إنشاء تطبيق مصغّر بسيط
- في ملف الموارد
shortcuts.xml
لتطبيقك، أضِف العنصر<app-widget>
إلى إمكاناتك التي تحتوي على تفاصيل تنفيذ الطلب وعلامات BII<parameter>
. تحديث أداة للتعامل مع المعلمات. - أضِف مكتبة إضافة Widgets المطلوبة، التي تتيح يمرِّر "مساعد Google" أسماء ومَعلمات BII إلى التطبيقات المصغّرة. كما أنه يمكّن مقدّمات مخصّصة لتقنية "تحويل النص إلى كلام" (TTS) وتثبيت التطبيقات المصغّرة الأخرى.
يصف القسم التالي مخطّط <app-widget>
للمَعلمة shortcuts.xml
.
مخطط الأداة
يتم تعريف عناصر <app-widget>
على أنّها عمليات تنفيذ ضمن
<capability>
في shortcuts.xml
. تتطلب ما يلي:
ما لم يُذكر على أنها اختيارية:
علامة `shortcuts.xml` | موجود في | السمات |
---|---|---|
<app-widget> |
<capability> |
|
<parameter> |
<app-widget> |
|
<extra> |
<app-widget> |
|
وصف مخطط الأداة
<التطبيق المصغَّر>
عنصر التنفيذ المصغّر ذو المستوى الأعلى
السمات:
android:identifier
: معرّف طريقة التنفيذ هذه يجب أن تكون هذه القيمة أن تكون فريدة عند تنفيذ<app-widget>
و<intent>
العناصر المحددة في<capability>
.android:targetClass
: الاسم الكامل لفئةAppWidgetProvider
التعامل مع المقصد.
<parameter>
تربط مَعلمة BII بقيمة <parameter>
في الغرض. يمكنك تحديد صفر أو
مزيد من المعلَمات لكل عنصر <app-widget>
. أثناء تنفيذ الطلب، بإمكان "مساعد Google"
تمرر المعلمات من خلال تحديث العناصر الإضافية لمثيل الأداة كأزواج المفتاح/القيمة،
بالتنسيق التالي:
- المفتاح: قيمة
android:key
المحددة للمعلَمة. - القيمة: القيمة التي يستخلصها BII من الإدخال الصوتي للمستخدم.
يمكنك الوصول إلى هذه الميزات الإضافية من خلال الاتصال بالرقم getAppWidgetOptions()
على الجهاز المرتبط
AppWidgetManager
، الذي يعرض Bundle
تحتوي على اسم
المشغل BII ومعاملاته. عرض
استخراج قيم المَعلمات لمعرفة التفاصيل
للحصول على مزيد من المعلومات عن مطابقة معلمات BII، راجع بيانات المَعلمات والمطابقة:
<إضافية>
علامة اختيارية توضح استخدام مقدمة مخصصة لتحويل النص إلى كلام هذه الأداة. تتطلب هذه العلامة قيم السمات التالية:
android:name
:"hasTts"
android:value
:"true"
نموذج التعليمات البرمجية
يوضّح المثال التالي من ملف shortcuts.xml
تطبيقًا مصغّرًا
إعدادات التنفيذ لـ
إمكانات GET_EXERCISE_OBSERVATION
BII:
<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()
لاستخراج اسم BII والمعلمات من
خيارات الأداة 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); } }
مكتبة إضافات التطبيقات المصغّرة
تحسّن مكتبة إضافة App Actions Widgets التطبيقات المصغّرة من تجارب "مساعد Google" لإعادة التوجيه الصوتي. تتيح هذه المكتبة لتطبيقاتك المصغّرة معلومات التنفيذ المهمة من عامل التشغيل BII، بما في ذلك BII وأيّ مَعلمات أهداف مستخلَصة من طلب بحث المستخدِم.
تتيح لك مكتبة Maven هذه تقديم مقدّمة مخصّصة حول ميزة "تحويل النص إلى كلام" (TTS). لكل تطبيق مصغّر، ما يتيح لخدمة "مساعد Google" الإعلان عن ملخّص للمحتوى بشكل مرئي للمستخدمين. ويتيح ذلك أيضًا تثبيت مشغّل التطبيقات، مما يجعل كان من السهل على المستخدمين حفظ التطبيقات المصغّرة المعروضة في "مساعد Google" على مشغّل التطبيقات لديهم الشاشات.
يمكنك البدء بإضافة المكتبة إلى قسم التبعيات في
ملف واحد (build.gradle
) لوحدة تطبيقك:
dependencies {
//...
implementation "com.google.assistant.appactions:widgets:0.0.1"
}
مقدّمات مخصّصة
بعد استيراد مكتبة إضافة التطبيقات المصغّرة، يمكنك توفير تقنية تحويل النص إلى كلام مخصصة.
المقدمات الخاصة بأدواتك. لإضافة تعريفك إلى علامة التبويب
AppWidgetProvider
، افتح الفئة في بيئة التطوير المتكاملة (IDE) ثم استورِد إضافة التطبيقات المصغّرة.
المكتبة:
Kotlin
import com.google.assistant.appactions.widgets.AppActionsWidgetExtension
Java
import com.google.assistant.appactions.widgets.AppActionsWidgetExtension;
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 (TTS)عُذْرًا، لَمْ أَتَمَكَّنْ مِنَ الْعُثُورْ عَلَى حَجْزْ. ResponseText عُذْرًا، لَمْ أَتَمَكَّنْ مِنَ الْعُثُورْ عَلَى حَجْزْ. |
ResponseSpeech (TTS)عُذْرًا، لَمْ أَتَمَكَّنْ مِنَ الْعُثُورْ عَلَى حَجْزْ. ResponseText عُذْرًا، لَمْ أَتَمَكَّنْ مِنَ الْعُثُورْ عَلَى حَجْزْ. |
فاصلاتأضف الوضوح باستخدام الفواصل التسلسلية في قوائم مكونة من ثلاثة عناصر أو أكثر. بدون الفاصلة التسلسلية، قد تكون العناصر الفردية في قائمتك أو يتم سماعها بشكل غير صحيح أو قراءتها كمجموعات. على سبيل المثال: في "النرجس، أزهار الأقحوان" وعبَّاد الشمس" "أزهار أقحوان وزهور دوّار الشمس" تبدو وكأنها تجتمع معًا. في "النرجس والأقحوان ودوار الشمس"، الثلاثة منفصلة بوضوح. |
ResponseSpeech (TTS)وتشمل أكثرها شيوعًا الورود الصفراء والنرجس وأزهار الأقحوان ودوار الشمس. ResponseText وتشمل أكثرها شيوعًا الورود الصفراء والنرجس وأزهار الأقحوان ودوار الشمس. |
ResponseSpeech (TTS)وتشمل أكثرها شيوعًا الورود الصفراء والنرجس وأزهار الأقحوان ودوار الشمس. ResponseText وتشمل أكثرها شيوعًا الورود الصفراء والنرجس وأزهار الأقحوان ودوار الشمس. |
الأرقاماستخدِم الأرقام بدلاً من النص لتسليط الضوء على المحتوى المرئي. |
ResponseSpeech (TTS)زيادة ضغط دمك عن 100 مقارنةً بـ 80 ResponseText يبلغ ضغط دمك 100/80. |
ResponseSpeech (TTS)يبلغ ضغط دمك 100/80. ResponseText يَبْلُغْ ضَغْطُ الدِّمُوحْ مِئَةً أَكْثَرْ مِنْ ثَمَانِينَ. |
رموزاستخدام الرموز المتخصّصة بدلاً من النص لإضفاء المزيد من المحتوى المرئي ونظرة سريعة. |
ResponseSpeech (TTS)بلغت قيمة عملية الشراء الأخيرة 24.65 دولار أمريكي. ResponseText بلغت قيمة عملية الشراء الأخيرة 24.65 دولار أمريكي. |
ResponseSpeech (TTS)آخِرْ عَمَلِيَّةْ شِرَاءْ بِقِيمَةْ أَرْبَعٍ وَعِشْرِينَ دُولَارْ وَخَمْسَة وَسِتِّينَ سنتًا. ResponseText آخِرْ عَمَلِيَّةْ شِرَاءْ بِقِيمَةْ أَرْبَعٍ وَعِشْرِينَ دُولَارْ وَخَمْسَة وَسِتِّينَ سنتًا. |
تجنب الانتقالات اللطيفةردود المشاعر تبدو بعيدة ورسمية. تخلص من هذه الكلمات واحتفظ ودية وغير رسمية. |
ResponseSpeech (TTS)تم تسليم طلبك. ResponseText تم تسليم طلبك. |
ResponseSpeech (TTS)بالتأكيد، يمكنني أن أخبرك ذلك. تم تسليم طلبك. ResponseText بالتأكيد، يمكنني أن أخبرك ذلك. تم تسليم طلبك. |
تجنب علامات التعجبيمكن اعتبارها صياحًا. |
ResponseSpeech (TTS)ركضت 1.5 ميل اليوم. ResponseText ركضت 1.5 ميل اليوم. |
ResponseSpeech (TTS)لقد ركضت 1.5 ميل اليوم. ResponseText لقد ركضت 1.5 ميل اليوم. |
الوقتاستخدِم الأرقام: "5:15," بدلاً من "خمسة وخمسون" أو "ربع بعد الخامسة". بالنسبة إلى تنسيق 12 ساعة، استخدِم صباحًا أو مساءً. |
ResponseSpeech (TTS)مِنَ الْمُفْتَرَضْ أَنْ يَصِلَ الطَّلَبْ فِي السَّاعَة 8:15 صَبَاحًا. ResponseText مِنَ الْمُفْتَرَضْ أَنْ يَصِلَ الطَّلَبْ فِي السَّاعَة 8:15 صَبَاحًا. |
ResponseSpeech (TTS)من المفترض أن تصل خدمة التسليم اليوم الساعة 15 دقيقة بعد الساعة 8 صباحًا. ResponseText من المفترض أن تصل خدمة التسليم اليوم الساعة 15 دقيقة بعد الساعة 8 صباحًا. |
لا تبدأ بنشر المونولوجات على الإنترنتكن غنيًا بالمعلومات، ولكن اجعل الردود موجزة. لا تكن عنيفًا التفاصيل بدون فائدة واضحة للمستخدم. |
ResponseSpeech (TTS)لقد استخدمت في الشهر الماضي 159 ساعة من الطاقة. ResponseText لقد استخدمت في الشهر الماضي 159 ساعة من الطاقة. |
ResponseSpeech (TTS)توفير الطاقة مهم جدًا لكوكب الأرض والبيئة. الشهر الماضي استخدمت 159 ساعة من الطاقة. لقد استخدمت 58 ساعة من الطاقة. ResponseText توفير الطاقة مهم جدًا لكوكب الأرض والبيئة. الشهر الماضي استخدمت 159 ساعة من الطاقة. لقد استخدمت 58 ساعة من الطاقة. |
استخدام كلمات قصيرة وبسيطةكما أن اللغة البسيطة والبساطة لها صدى واسع، ما يجعلها سهلة الاستخدام أشخاص من جميع الخلفيات. |
ResponseSpeech (TTS)آخر قياس لك لمرض سكر الدم كانت 126. ResponseText آخر قياس لك لسكر الدم كانت 126 مليغرام/دي لتر. |
ResponseSpeech (TTS)كان مستوى الغلوكوز في الدم ما قبل الأخير 126. ResponseText كان مستوى الغلوكوز في الدم ما قبل الأخير 126. |
تثبيت مشغّل التطبيقات
تسمح مكتبة إضافات التطبيقات المصغّرة بعرض الزر إضافة هذا التطبيق المصغّر.
باستخدام تطبيقك المصغّر في "مساعد Google" لتفعيل التثبيت، أضِف المُستلِم التالي
تعريف إلى 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>
مدى التوفّر في المستودع
يمكن لمعرّفات BII التي تتيح المستودع المضمّن أو المستودع الإعلاني على الويب توسيع نطاق إلى عمليات تنفيذ تطبيقاتك المصغّرة.
المستودع المضمّن
يوضح الرمز التالي من نموذج ملف shortcuts.xml
إمكانات START_EXERCISE
BII
يتم إعداده للمستودع المضمّن وتنفيذ التطبيقات المصغّرة:
<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>
في العيّنة السابقة، عندما يشغّل المستخدم هذه الإمكانية عن طريق طرح
المساعد، "بدء التشغيل باستخدام 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" الإضافي "استوديو Android": لاختبار التطبيقات المصغّرة على جهاز فعلي أو افتراضي. للاستخدام أداة الاختبار، اتبع الخطوات التالية:
- اربط جهاز الاختبار بالتطبيق قيد التشغيل.
- في "استوديو Android"، انتقِل إلى الأدوات >. الإجراءات في التطبيق > اختبار "مهامّ في التطبيقات" الأداة.
- انقر على إنشاء معاينة.
- باستخدام "استوديو Android"، يمكنك تشغيل تطبيقك على جهاز الاختبار.
- يُرجى استخدام تطبيق "مساعد Google" على الجهاز الاختباري لاختبار إجراء التطبيق. بالنسبة على سبيل المثال، يمكنك قول "Ok Google، كم ميلاً مشيت؟ هذا الأسبوع على ExampleApp؟"
- راقِب سلوك تطبيقك أو استخدِم برنامج تصحيح الأخطاء في "استوديو Android" من أجل للتحقق من نتيجة الإجراء المطلوبة.
إرشادات الجودة
يسلط هذا القسم الضوء على المتطلبات الأساسية وأفضل الممارسات عند دمج "مهامّ في التطبيقات" مع التطبيقات المصغّرة
المحتوى في التطبيقات المصغّرة
- (مطلوب) عدم عرض إعلانات في أدواتك.
- تركيز محتوى الأداة بالكامل على تحقيق الهدف. الإجراءات غير المستحسنة محاولة تحقيق أغراض متعددة باستخدام أداة واحدة أو إضافة محتوى غير ملائم
التعامل مع المصادقة
- (مطلوب) عندما تكون مصادقة المستخدم مطلوبة لإكمال تدفق المستخدم، إرجاع أداة توضح أن المستخدم بحاجة إلى المتابعة في التطبيق. مصادقة المستخدم المضمّنة في "مساعد Google" غير متاحة للتطبيق الإجراءات.
- إذا سمح المستخدمون لتطبيقك بعرض بيانات باستخدام الأدوات، يمكنك عرض تطبيق خطأ في وقت التشغيل للمستخدمين غير المصرح لهم.
الأهداف الاحتياطية
(مطلوب) في
shortcuts.xml
، احرِص دائمًا على توفير خيار احتياطي.<intent>
بالإضافة إلى تنفيذ الأداة قدرات معينة. الغرض الاحتياطي هو عنصر<intent>
بدون الحاجة إلى<parameter>
من القيم.يتيح ذلك لخدمة "مساعد Google" تنفيذ إجراء معيّن عند أنّ طلب بحث المستخدم لا يحتوي على مَعلمات مطلوبة في طريقة التنفيذ الأخرى والعناصر المحددة في القدرة. والاستثناء من ذلك هو عندما لا تكون هناك والمعايير المطلوبة لتلك الإمكانية، وفي هذه الحالة سيكون التطبيق المصغَّر مطلوبة.
استخدِم الغرض الاحتياطي لفتح التطبيق على الشاشة ذات الصلة وليس الشاشة الرئيسية.
يوضح الرمز التالي من نموذج ملف 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
يسرد هذا القسم بيانات المستخدمين النهائيين التي تم جمعها من خلال أحدث إصدار مكتبة إضافات Widgets.
ترسل حزمة تطوير البرامج (SDK) هذه ردودًا من مطوّر البرامج على ميزة تحويل النص إلى كلام. أعلن عنه "مساعد Google" للمستخدم باستخدام الكلام في "مساعد Google" التكنولوجيا. ولا تخزِّن Google هذه المعلومات.
قد تتضمن الإجراءات على التطبيق أيضًا جمع البيانات الوصفية لتطبيقات العميل للأغراض التالية:
- مراقبة معدلات استخدام إصدارات مختلفة من حزمة SDK
- لقياس استخدام ميزة حزمة تطوير البرامج (SDK) في جميع التطبيقات