بعد تحديد الوظيفة داخل التطبيق والقصد المضمّن المرتبط بها
(BII) المطلوب تنفيذه، عليك الإفصاح عن الوظائف المضمّنة التي تتيحها الوظيفة من خلال تعريف
عنصر capability
في ملف موارد shortcuts.xml
. الإعلان عن مهنة الطب والجراحة (BII)
ولأنّ capability
تسجّل توافقًا مع هذا الغرض الدلالي في تطبيقك،
تتيح تنفيذ الطلبات الصوتية للغرض باستخدام "مساعد Google".
يستخدم "مساعد Google" تقنية "معالجة اللغات الطبيعية" لاستخراج المَعلمات من المستخدم
طلب البحث. يسرد مرجع الأهداف المضمّنة الحقول التي يتضمّنها كل عنصر معلومات أساسي.
قادرًا على استخراجها من طلب بحث مرتبط بالمستخدم على سبيل المثال، إذا كان لدى مستخدم
باستدعاء الميزة [actions.intent.GET_FOOD_OBSERVATION
][] في تطبيقك من خلال
القول، "Ok Google، اسأل ExampleApp ما الذي تناولته على الغداء يوم الجمعة الماضي"، مساعد Google
لاستخراج معلمات BII التالية من طلب المستخدم:
foodObservation.forMeal
= "https://schema.googleapis.com/MealTypeLunch"foodObservation.startTime
= "2024-09-06T00:00:00"foodObservation.endTime
= "2024-09-06T23:59:59"
يمرِّر "مساعد Google" مَعلمات BII إلى عملية التنفيذ intent
المحدّدة في
capability
يمكن تعريف عنصر intent
واحد أو أكثر في إحدى الإمكانات للتمكّن من مراعاة الطرق المختلفة التي قد يستخدِم بها المستخدم واجهة برمجة التطبيقات لخدمات الويب. على سبيل المثال،
يمكنك تعريف عملية تنفيذ intent
تتطلّب مَعلمتَي BII في المثال
أعلاه. يمكنك بعد ذلك تحديد نية ثانية تتطلّب مَعلمة BII
واحدة، foodObservation.forMeal
، تُبلغ عن جميع الوجبات في يوم معيّن، مثل "Ok Google، أريد أن أسأل تطبيق ExampleApp ما الذي أكلته للغداء".
نظرة عامة
يمكنك إعداد خدمة "مهامّ في التطبيقات" باستخدام ملف "shortcuts.xml
" متوفّر في تطبيقك.
لدليل res/xml
الخاص بالمشروع، ثم إنشاء مرجع إلى shortcuts.xml
في بيان التطبيق. يُرجى إضافة إشارة إلى shortcuts.xml
في بيان التطبيق.
باتّباع الخطوات التالية:
في ملف البيان لتطبيقك (
AndroidManifest.xml
)، ابحث عن نشاط يتم ضبط فلاتر الأهداف على الإجراءandroid.intent.action.MAIN
وكذلك على الفئةandroid.intent.category.LAUNCHER
.أضِف إشارة إلى
shortcuts.xml
فيAndroidManifest.xml
باستخدام علامة<meta-data>
فيActivity
التي تحتوي على فلاتر النيّة لكلّ منMAIN
وLAUNCHER
، على النحو التالي:<meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" />
يُعلن المثال أعلاه عن مرجع XML لملف xml/shortcuts.xml
في
حزمة APK. لمزيد من التفاصيل حول تهيئة الاختصارات، راجع
أنشئ اختصارات ثابتة في مستندات مطوّري برامج Android.
مكتبة Jetpack androidx.core:core:1.6.0
(أو أعلى) مطلوبة في مشروع Android لتجنُّب أخطاء التحويل البرمجي.
عند تحديد إمكانات "مهامّ في التطبيقات" في "shortcuts.xml
". للحصول على التفاصيل، يمكنك مراجعة
بدء استخدام Android Jetpack
الاختصارات الثابتة
عند تحديد capability
، يمكنك الإعلان عن عناصر shortcut
الثابتة في
shortcuts.xml
لتوسيع وظائف هذه الميزة. الاختصارات الثابتة
يستوعب "مساعد Google" بياناتك عند تحميل إصدار إلى Google Play Console.
نظرًا لأنه لا يمكن إنشاء الاختصارات الثابتة وتحديثها إلا من خلال إنشاء إصدارات جديدة،
تكون مفيدة للغاية لتسليط الضوء على الأنشطة والمحتوى الشائع في تطبيقك.
يمكنك تفعيل وظائف "مهامّ في التطبيقات" التالية باستخدام الاختصارات الثابتة:
اختصارات الإمكانيات: إنشاء اختصارات لتشغيل مثيل
capability
تحتوي على قيم مَعلماتintent
المحدَّدة مسبقًا. على سبيل المثال: يمكنك تعريف اختصار التطبيق "بدء التشغيل" مما يستدعيSTART_EXERCISE
BII في تطبيق اللياقة البدنية.تحتوي هذه الاختصارات على سمات
intent
وshortLabel
وlongLabel
، وتأهيلها لاقتراحها وتقديمها ضمن شرائح بشكل استباقي مساحات العرض، مثل "مساعد Google" أو عند الضغط مع الاستمرار على رمز أحد التطبيقات في نظام التشغيل Android مشغّلات التطبيقات. يمكن أيضًا استخدام اختصار الإجراء كاختصار للكيان، وهو مفصل أدناه، من خلال ربطها بـcapability
باستخدام<capability-binding>
.اختصارات العناصر: توفّر اختصارات الكيانات قائمة بالمَعلمات المتوافقة قيم تنفيذ الطلب الصوتي لـ
capability
. على سبيل المثال، يمكن اعتبار أحد الكيانات قائمة بأنواع التمارين ("hike" و"run" وغير ذلك) المرتبطة المعلمةexercise.name
BIISTART_EXERCISE
قدراتي. إذا تطابق عبارة المستخدم مع كيان، سيتم استخدام رقم تعريفshortcutId
. تمريره إلى الغرض بدلاً من قيمة طلب بحث المستخدم الأولية.Entity
اختصارات لا تحددintent
أوshortLabel
أوlongLabel
وبالتالي لا يتم اقتراحها على مساحات العرض الاستباقية. للاطّلاع على التفاصيل، يُرجى الاطّلاع على مستودع إعلانات مضمّنة لإجراءات التطبيقات.
مخطط الإمكانات
يوضّح الجدول التالي مخطط "مهامّ في التطبيقات" لعناصر capability
.
في shortcuts.xml
. عند تضمين علامة، تكون جميع سماتها مطلوبة
ما لم يتم وضع علامة "اختياري" عليه.
علامة 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
يحدِّد هدف "إجراء التطبيق" الذي يتوافق معه تطبيقك على كل
يجب أن يوفّر العنصر <capability>
في ملف shortcuts.xml
عنصرًا واحدًا على الأقل.
<intent>
لمعالجة تنفيذ الإجراء.
السمات:
android:name
: معرّف الإجراء المضمَّن (على سبيل المثال، [actions.intent.GET_FOOD_OBSERVATION
][]). للحصول على قائمة بالأجهزة المتوافقة الأهداف المضمّنة، اطّلِع على مرجع الغرض المضمّن.app:queryPatterns
: مورد مصفوفة سلسلة لطلبات البحث المتوقعة من المستخدم لهذا الغرض. تنطبق هذه السمة فقط على روابط وعناصر إعلانية حسب نية العميل، لأنّ BII تتضمّن نماذج أو الطرق الشائعة التي يعبر بها المستخدمون عن المهام التي يحاولون القيام بها أو المعلومات التي يسعون إليها.
<intent>
عنصر Android intent
الذي يحدّد كيفية طلب بحث المستخدم
باستخدام وظيفة داخل التطبيق. يمكن للمطوِّرين تقديم عدة تطبيقات <intent>
العلامات في capability
. يحاول "مساعد Google" تنفيذ طلب بحث المستخدم باستخدام
<intent>
الأولى في capability
التي تم توفير جميع المَعلمات المطلوبة لها.
السمات:
android:action
: النوعAction
الغرض القيمة التلقائية هيACTION_VIEW
.android:targetClass
: فئة النشاط المستهدَف، على سبيل المثال:"com.example.exercise.ExerciseActivity"
android:targetPackage
: الحزمة التي تحتوي على فئة النشاط المستهدف، مثال:"com.example.exercise
android:data
: تم استبدال هذا الحقل بـ<url-template>
. إذا تم تعريف هذه العلامة فيintent
.
<url-template>
نموذج لإنشاء معرّف موارد منتظم (URI) لرابط لصفحة في التطبيق من أجل أن يتم فتحه على الجهاز. يمكن توسيع النماذج باستخدام مَعلمات اتّجاه مدمجة إذا كانت جميع المَعلمات المطلوبة للنماذج متاحة. للاطّلاع على أمثلة على نموذج عنوان URL المستخدِم بروتوكول HTTP، يُرجى الاطّلاع على مقالة Wikipedia حول نماذج عناوين URL. تشير رسالة الأشكال البيانية يتبع تنسيق النموذج مواصفات نموذج معرّف الموارد المنتظم (URI) RFC6570.
في ما يلي بعض الأمثلة على قيم نماذج عناوين URL:
النموذج | القيم | قيمة موسّعة |
---|---|---|
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 |
لمزيد من المعلومات عن ضبط نماذج عناوين URL، يُرجى الاطّلاع على مقالة نماذج عناوين URL في مرحلة التسليم.
<إضافية>
تحدِّد هذه السياسة البيانات الإضافية للسمة intent
. بالنسبة إلى "مهامّ في التطبيقات"، لا يُستخدَم هذا الحقل إلّا للأغراض التالية:
تفعيل [استدعاء التطبيق الذي يعمل في المقدّمة][] لـ capability
<parameter>
تربط مَعلمة BII بقيم مَعلمات intent. لمزيد من المعلومات، يُرجى مراجعة بيانات المَعلمات والمطابقة:
السمات:
android:name
: اسم المعلَمة BII المطلوب ربطها بهذاintent
. يجب أن يكون الاسم حقلاً على مستوى الورقة للمعلمة BII (لـ مثلfoodObservation.aboutFood.name
).android:key
: مفتاح يحدده المطوّر لقيمة مَعلمة BII على سبيل المثال: يمكنك تعريفcontact_name
لـmessage.recipient.name
BII .android:mimeType
: mimeType للمَعلمة، مثلtext/*
. هذا النمط يكون مطلوبًا فقط لمعلمات الروابط والعناصر الإعلانية حسب النية بالشراء.android:required
: يفصح عن ما إذا كان طلب بحث المستخدم بحاجة إلى تضمين هذا العنصر. لالغرض من استخدامه في التنفيذ. إذا لم تكن المعلمة متاح، يحاول "مساعد Google" تنفيذ طلب بحث المستخدم باستخدام تم تحديدintent
للسمةcapability
.
<shortcut-fulfillment>
تُحدِّد السياسة intent
الذي تم تحديده في اختصار مستودع مضمّن.
استخدام المَعلمة المحدّدة للتنفيذ.
لمعرفة التفاصيل، يُرجى الاطّلاع على التنفيذ باستخدام أهداف الاختصارات.
<parameter> (لـ <shortcut-fulfillment>
)
سمة اختيارية تربط مَعلمة BII واحدة بالمستودع المضمّن تنفيذ الاختصار. لمعرفة التفاصيل، يُرجى الاطّلاع على التنفيذ باستخدام أهداف الاختصارات.
السمة:
android:name
: اسم مَعلمة BII المطلوب ربطها بالمستودع المضمّن تنفيذ الاختصار. يجب أن يكون الاسم حقلاً على مستوى ورقة البيانات في BII (على سبيل المثال،menuItem.name
).
<slice>
يتيح هذا الخيار لتطبيق "مساعد Google" تضمين نتيجة طلب بحث يتطابق مع هذا capability
كأحد
شرائح Android. للحصول على التفاصيل، يمكنك مراجعة
دمج ميزة "مهامّ في التطبيقات" مع شرائح Android
مخطّط الاختصار
يوضّح الجدول التالي سمات عناصر shortcut
المستخدَمة للأغراض التالية:
تفعيل وظائف "مهامّ في التطبيقات" عند تضمين علامة، يجب أن تصبح جميع سماتها
ما لم يتم وضع علامة "اختياري" عليها.
علامة Shortcuts.xml | موجود في | السمات |
---|---|---|
<shortcut> |
<shortcuts> |
|
<intent> |
<shortcut> |
|
<capability-binding> |
|
|
<parameter-binding> |
<capability-binding> |
|
<extra> |
<shortcut> |
لا ينطبق إلا على مطابقة مَعلمات Enum. |
وصف مخطط الاختصار
يوضِّح هذا القسم عناصر مخطط shortcut
.
<shortcut>
<shortcut>
لنظام التشغيل Android تمّ تحديده في shortcuts.xml
باستخدام سمات معيّنة
تكون ذات صلة بإجراءات التطبيق قيم السلسلة لـ shortcutShortLabel
وshortcutLongLabel
تتم الإشارة إليها عبر ملف APK
مصادر السلسلة
السمات:
android:shortcutId
: معرّف هذا الاختصارandroid:shortcutShortLabel
: مورد سلسلة يمثّل اختصارًا موجزًا عبارة. على سبيل المثال،"@string/callDavidShort"
الذي يمثل القيمة "اتصال ديفيد".android:shortcutLongLabel
: مورد سلسلة يمثّل اختصارًا طويلاً عبارة. على سبيل المثال،"@string/callDavidLong"
الذي يمثل القيمة "إنشاء مكالمة صوتية إلى ديفيد".
<intent>
هدف Android المرتبط بهذا الاختصار يتم تنفيذ intent
عندما
يشغِّل المستخدم هذا الاختصار باستخدام الصوت أو اللمس.
shortcut
سمات intent مماثلة لـ capability
intent
ذات الصلة.
<capability-binding>
تربط السمة shortcut
بالإجراء capability
في التطبيقات. إضافة هذا العنصر إلى
توفّر السمة shortcut
طريقة التنفيذ بالصوت باستخدام Assistant
.
السمات:
android:key
: السمةandroid:name
للسمةcapability
التاليةshortcut
مقترن بـ. على سبيل المثال:actions.intent.START_EXERCISE
<parameter-binding>
سمة اختيارية تربط shortcut
بمَعلمة واحدة في أحد التطبيقات
الإجراءات capability
. إذا تم تحديد parameter-binding
للسمة shortcut
، سيتم
يمكن استخدام اختصار لتوفير كيان مستودع مضمّن لمعلَمة BII.
لمزيد من التفاصيل، يُرجى الاطّلاع على المستودع الإعلاني المضمّن لميزة "المهام مع مساعد Google".
السمات:
android:key
: اسم مَعلمة BIIcapability
لربط هذا الاختصار بها. على سبيل المثال،exercise.name
.android:value
: القيمةentity
يمكن أن تكون قيمة الحقل "entity
" أو قائمة الموارد.
<إضافية>
بيانات حزمة extra
للاختصار sameAs هي البيانات الوحيدة
ذات صلة بعناصر shortcut
الخاصة بـ "إجراءات التطبيقات" يشير عنوان URL sameAs إلى
تشير إلى صفحة ويب تحدد الكيان بوضوح. يتم استخدامه لتحديد
فقط إذا كان نوع معلَمة الغرض نوعًا فرعيًا من
schema.org/Enumeration: يجب ملء هذا الحقل لحقول المَعلمات
وأنواعها هي أنواع فرعية من schema.org/Enumeration
(على سبيل المثال:
MealTypeBreakfast
).
السمات:
android:key
: القيمة المسموح بها لـ "مهامّ في التطبيقات" هي:sameAs
android:value
: قيمة عنوان URL للسمةsameAs
وللمزيد من التفاصيل، يُرجى الاطّلاع على مطابقة قيم المَعلمات المعدودة.
خيارات تنفيذ الأهداف
يمكنك تحديد عناصر intent
ضمن <capability>
لتوضيح الطريقة التي يستخدمها "مساعد Google".
يستجيب لأوامر المستخدم الصوتية التي تتوافق مع هذه الإمكانية أو يستجيب لها. هناك
هي عدّة طرق لضبط طريقة إطلاق intent
لوجهة توصيل الطلبات.
في تطبيقك، اعتمادًا على كيفية تنظيم التنقل في التطبيق.
تتوفّر خيارات التسليم التالية:
المقصودات الصريحة: يمكنك تشغيل مكوّن تطبيق معيّن من خلال تحديد سمتَي
targetClass
وtargetPackage
للعنصرintent
. هذه هي طريقة تنفيذ "مهامّ في التطبيقات" المقترَحة.الروابط لصفحات في التطبيق: يمكنك إطلاق وجهات التطبيقات باستخدام روابط لصفحات في التطبيق في Android عن طريق تحديد علامة
<url-template>
داخل العنصرintent
. وتكون هذه المحاولة مفيدة إذا كان تنقّل تطبيقك يعتمد على الروابط لصفحات في التطبيق.بيانات الغرض: يمكنك تقديم معرّف موارد منتظم (URI) للتنفيذ في
intent
. السمةandroid:data
يتم استبدال هذا الحقل ببيانات<url-template>
إذا تم تحديد هذه العلامة أيضًا ضمنintent
.
بيانات المَعلمات والمطابقة
يُرسِل "مساعد Google" تلقائيًا مَعلمات BII المستخلصة من طلب بحث المستخدم إلى
التطبيق باعتباره بيانات extra
من intent
لنظام التشغيل Android المحدّد في capability
.
يمكنك بدلاً من ذلك الإعلان عن علامة <url-template>
في
capability
يحتوي على عناصر نائبة للمعلمات الديناميكية. هذا النموذج
لأحد أنشطتك على Android، باستخدام عنوان URL لروابط التطبيقات،
مخطط مخصّص أو عنوان URL مستند إلى الغرض.
استخدام عناصر واجهة المستخدم الإضافية
يوضّح المثال التالي نية صريحة محدّدة لعملية 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، أريد طلب قهوة لاتيه من
ExampleApp"، يتلقّى التطبيق الرمز intent
الذي يستدعي المكوِّن:
targetPackage
، targetClass
. يتلقى المكون عنصرًا إضافيًا مع
key = "exercise"
، value = "Running"
.
استخدام نموذج عنوان URL لروابط صفحات معيّنة في Android
إذا كان تطبيقك قادرًا بالفعل على التعامل مع عناوين URL المرتبطة بالتطبيق مع المعلمات الديناميكية،
يمكنك تحديد <url-template>
في intent
لإنشاء Android
روابط لصفحات معيّنة في التطبيق يحدد النموذج التالي السمة <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، أريد طلب قهوة لاتيه من ExampleApp"، سيتلقّى التطبيق عنوان URL الذي تم إنشاؤه: "myapp://start?exercise=Running".
لربط المَعلمة BII بموضع في عنوان URL، يمكنك استخدام
السمة android:name
للعلامة <parameter>
. هذه السمة
مع القيمة android:key
في نموذج عنوان URL الذي تريد
واستبدالها بمعلومات من المستخدم. يجب أن تكون قيمة android:key
متوفّرة.
في <url-template>
ومحاطة بأقواس معقوفة ({}
).
مطابقة قيم المَعلمات العددية
تقدم بعض مَعلمات BII قيمًا معدودة لهدف التنفيذ
المثال، القيم النصية المسموح بها لـ RECORD_FOOD_OBSERVATION
BII. بالنسبة
هذه المعلمات، يُطابق "مساعد Google" طلب بحث المستخدم ("إفطار")
كيان تتطابق قيمة sameAs
مع عنوان URL لمخطط التعداد
(https://schema.googleapis.com/MealTypeBreakfast
). لربط التعداد
قيمة entity
متوافقة، وعليك الإشارة إلى ارتباط sameAs
في
shortcut
. يوضّح النموذج التالي عملية ربط 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
لتفعيل الميزات بالصوت في
تطبيقك التي لا تتطابق مع معرّفات BII المتاحة بينما تشبه في
لوظيفة بتعريف BII، تتطلب الأهداف المخصصة
تقديم اثنتين إضافيتين
السمات في shortcuts.xml
:
app:queryPatterns
: مورد مصفوفة يعرّف عن أنماط طلبات بحث مختلفة حسب النية بالشراءandroid:mimeType
: نوع مَعلمة الغرض المخصّص حسب النية بالشراء هذا الحقل هو ليست مطلوبة لمعيار BII حيث يكون نوع المعلمة معروفًا. مخصّص حسب نيّة الشراء ، يجب الإعلان عن نوع دلالي متوافق.
لمزيد من التفاصيل، راجِع الروابط المخصّصة حسب النية بالشراء.