تحسين المحتوى السياقي في "مساعد Google"

يقدّم نظام Android 6.0 Marshmallow طريقة جديدة للمستخدمين للتفاعل مع التطبيقات من خلال "مساعد Google" التطبيقات، مثل تقويم "مساعد Google" المساعد هو نافذة من المستوى الأعلى يمكن للمستخدمين عرضها للحصول على الإجراءات ذات الصلة بالنشاط الحالي. وقد تتضمن هذه الإجراءات روابط لمواضع معينة تؤدي إلى تطبيقات أخرى على الجهاز.

يمكن للمستخدمين تفعيل المساعد بالضغط مع الاستمرار على زر الشاشة الرئيسية أو عن طريق قول keyalgorithmic: استجابةً لذلك، يفتح النظام نافذة مستوى أعلى تعرض السياق الإجراءات ذات الصلة.

يؤدي تطبيق مساعد، مثل مساعد Google، إلى تنفيذ نافذة مساعد Google من خلال Now on Tap، والتي تعمل مع الوظائف على مستوى نظام Android الأساسي. النظام تسمح للمستخدم باختيار تطبيق مساعد يحصل على معلومات سياقية من تطبيقك باستخدام Assist API لنظام التشغيل Android

يوضّح هذا الدليل آلية تطبيقات Android في استخدام Assist API على Android لتحسين أداء "مساعد Google". تجربة المستخدم. للتعرّف على كيفية إنشاء تطبيق وسائط ليتمكّن "مساعد Google" من تشغيله والتحكّم، يُرجى الاطّلاع على "مساعد Google" وتطبيقات الوسائط

استخدام "مساعد Google"

يوضح الشكل 1 تفاعل مستخدم عادي مع المساعد. عندما يضغط المستخدم لفترة طويلة زر الصفحة الرئيسية، يتم استدعاء استدعاءات واجهة برمجة التطبيقات Assist API في التطبيق المصدر (الخطوة 1). يعرض المساعد نافذة التراكب (الخطوتان 2 و3). ثم يحدد المستخدم الإجراء لتنفيذه. ينفِّذ المساعد الإجراء المحدّد، مثل تنشيط هدف باستخدام رابط لصفحة في تطبيق مطعم (الوجهة) (الخطوة 4).

الشكل 1. مثال على تفاعل "مساعد Google" مع ميزة Now on Tap في تطبيق Google

يمكن للمستخدمين ضبط المساعد من خلال اختيار الإعدادات > التطبيقات > التطبيقات التلقائية > مساعدة الإدخال الصوتي. يمكن للمستخدمين تغيير خيارات النظام مثل الوصول محتويات الشاشة كنص والوصول إلى لقطة شاشة، كما هو موضح في الشكل 2.

الشكل 2. مساعدة إعدادات الإدخال الصوتي

التطبيق المصدر

للتأكّد من أنّ تطبيقك يعمل مع "مساعد Google" كمصدر للمعلومات للمستخدم، يُرجى اتّباع الخطوات التالية: ما عليك سوى اتّباع أفضل أدوات تسهيل الاستخدام الممارسات. يوضّح هذا القسم كيفية تقديم معلومات إضافية. للمساعدة في تحسين تجربة المستخدم بالإضافة إلى السيناريوهات التي تحتاج إلى معالجة خاصة، مثل طرق العرض المخصصة.

مشاركة معلومات إضافية مع المساعد

بالإضافة إلى النص ولقطة الشاشة، يمكن لتطبيقك مشاركة المعلومات الأخرى مع المساعد. على سبيل المثال، الموسيقى الخاصة بك يمكن للتطبيق اختيار تمرير معلومات الألبوم الحالي حتى يتمكن "مساعد Google" من اقتراح إجراءات أكثر ذكاءً مصممة استنادًا إلى النشاط الحالي. لاحظ أن واجهات برمجة تطبيقات المساعدة عدم توفّر عناصر تحكّم في الوسائط لإضافة عناصر التحكّم في الوسائط، يُرجى الاطّلاع على تطبيقات "مساعد Google" والوسائط.

لتوفير معلومات إضافية للمساعد، يوفر تطبيقك سياق التطبيق العام من خلال تسجيل مستمع للتطبيق توفر معلومات خاصة بالنشاط باستخدام استدعاءات الأنشطة كما هو موضح في الشكل 3:

الشكل 3. الرسم البياني لتسلسل مراحل نشاط واجهة برمجة التطبيقات الداعمة

ولتوفير سياق عام للتطبيق، ينشئ التطبيق تنفيذًا يتم تسجيل Application.OnProvideAssistDataListener باستخدام registerOnProvideAssistDataListener(). لتوفير معلومات سياقية خاصة بالنشاط، قد يتضمن النشاط يؤدي إلى إلغاء onProvideAssistData() وonProvideAssistContent(). يُطلق على طريقتي النشاط بعد الاختيار العمومي الاختياري تم استدعاء رد الاتصال. يجب تنفيذ عمليات الاسترداد على سلسلة التعليمات الرئيسية، إكمالها مطالبًا. لا يتم استدعاء عمليات الاستدعاء إلا عندما يكون النشاط قيد التشغيل.

توفير السياق

عندما يفعّل المستخدم المساعد، تم استدعاء onProvideAssistData() لإنشاء نموذج ACTION_ASSIST النية بالشراء مع كل سياق تم تمثيل التطبيق الحالي كمثيل لـ AssistStructure. يمكنك إلغاء هذه الطريقة لتقديم أي شيء تريده في الحزمة أن يظهر في جزء واحد (EXTRA_ASSIST_CONTEXT) من هدف النقرة أو مرة الظهور الداعمة.

وصف المحتوى

يمكن لتطبيقك تنفيذ onProvideAssistContent() لتحسين تجربة المستخدم في "مساعد Google" من خلال توفير مراجع ذات صلة بالمحتوى المتعلقة بالنشاط الحالي. يمكنك وصف محتوى التطبيق باستخدام المفردات الشائعة التي تم تعريفها بواسطة Schema.org من خلال كائن JSON-LD. في المثال أدناه، يوفر تطبيق الموسيقى البيانات المنظَّمة لوصف الألبوم الموسيقي الذي يستخدمه المستخدم حاليًا عرض:

Kotlin

override fun onProvideAssistContent(assistContent: AssistContent) {
    super.onProvideAssistContent(assistContent)

    val structuredJson: String = JSONObject()
            .put("@type", "MusicRecording")
            .put("@id", "https://example.com/music/recording")
            .put("name", "Album Title")
            .toString()

    assistContent.structuredData = structuredJson
}

Java

@Override
public void onProvideAssistContent(AssistContent assistContent) {
  super.onProvideAssistContent(assistContent);

  String structuredJson = new JSONObject()
       .put("@type", "MusicRecording")
       .put("@id", "https://example.com/music/recording")
       .put("name", "Album Title")
       .toString();

  assistContent.setStructuredData(structuredJson);
}

ويمكنك أيضًا تحسين تجربة المستخدم من خلال عمليات تنفيذ مخصّصة onProvideAssistContent(), والتي يمكن أن توفر الفوائد التالية:

ملاحظة: من المحتمل أن تحتاج التطبيقات التي تستخدم تحديد نص مخصَّص إلى تنفيذ تنفيذ onProvideAssistContent() والاتصال بـ setClipData().

التنفيذ التلقائي

إذا لم تكن onProvideAssistData() أو onProvideAssistContent() يستمر تنفيذ عملية الاسترداد، ويستمر النظام في المتابعة ويجتاز المعلومات التي تم جمعها تلقائيًا إلى المساعد ما لم تم وضع علامة على النافذة على أنها آمنة. كما هو موضح في الشكل 3، يستخدم النظام آليات التنفيذ التلقائية لكل من onProvideStructure() وonProvideVirtualStructure() من أجل تجميع النص وعرض معلومات التسلسل الهرمي. إذا كانت طريقة العرض تنفّذ خيارات مخصَّصة رسم نصي، يمكنك إلغاء onProvideStructure() لتوفير المساعد بالنص الذي يظهر للمستخدم من خلال الاتصال بـ setText(CharSequence).

في معظم الحالات، يساعد تنفيذ دعم إمكانية الوصول أو مساعد Google للحصول على المعلومات التي يحتاج إليها لتنفيذ دعم الوصول، اتباع أفضل الممارسات الموضحة في مقالة إنشاء تطبيقات يمكن الوصول إليها، بما في ذلك ما يلي:

استبعاد المشاهدات من المساعدين

لمعالجة المعلومات الحساسة، يمكن لتطبيقك استبعاد العرض الحالي من المساعد من خلال إعداد معلَمة تنسيق FLAG_SECURE لـ WindowManager. يجب ضبط FLAG_SECURE بشكل صريح من أجل كل نافذة ينشئها النشاط، بما في ذلك مربّعات الحوار يمكن لتطبيقك أيضًا استخدام setSecure() المطلوب استبعادها سطح من المساعد. لا يوجد آلية عامة (على مستوى التطبيق) لاستبعاد جميع المشاهدات من المساعد. ملاحظة أنّ FLAG_SECURE لا يتسبّب في إيقاف عمليات استدعاء واجهة برمجة التطبيقات Assist API إطلاق النار ويبقى بإمكان النشاط الذي يستخدم "FLAG_SECURE" الوصول بشكل صريح تقديم معلومات إلى أحد تطبيقات المساعد باستخدام عمليات الاستدعاء المذكورة سابقًا هذا الدليل.

ملاحظة: بالنسبة إلى حسابات العمل (Android for Work)، يمكن للمشرف إيقاف جمع بيانات المساعد لملف العمل باستخدام طريقة setScreenCaptureDisabled() من DevicePolicyManager API.

التفاعلات الصوتية

يتم أيضًا استدعاء استدعاءات واجهة برمجة التطبيقات المساعدة عبارة رئيسية الرصد. لمزيد من المعلومات، يُرجى الاطّلاع على منتدًى لهم وثائق الإجراءات.

اعتبارات الترتيب Z

يستخدم أحد المساعدين نافذة مركّبة خفيفة الحجم يتم عرضها أعلى النشاط الحالي. نظرًا لأنه يمكن للمستخدم تفعيل المساعد في أي وقت، عدم إنشاء دائم نوافذ تنبيه النظام التي تتداخل مع نافذة التراكب، كما هو موضح في الشكل 4.

الشكل 4. ترتيب الطبقة المساعدة Z

إذا كان تطبيقك يستخدم لتنبيه النظام، عليك إزالتها على الفور؛ لأن تركها على يؤدي إلى خفض تجربة المستخدم.

تطبيق الوجهة

تستفيد تطبيقات "مساعد Google" عادةً من الربط بصفحة معيّنة للعثور على التطبيقات الوجهة. لجعل تطبيق وجهة محتملة، لذا يمكنك إضافة دعم الربط بصفحة معيّنة. مطابقة بين سياق المستخدم الحالي والروابط لصفحة في التطبيق أو الإجراءات المحتملة الأخرى المعروضة في نافذة التراكب (الموضحة في الخطوة 3 في الشكل 1) خاصة بتنفيذ مساعد Google. بالنسبة مثال، يستخدم تطبيق "مساعد Google" الروابط لمواضع معيّنة وروابط التطبيقات من أجل توجيه حركة البيانات إلى تطبيقات الوجهة.

استخدام "مساعد Google"

وقد تحتاج إلى استخدام مساعدك الخاص. كما هو موضّح في الشكل 2، سيتمكّن المستخدم من اختيار تطبيق المساعد المُفعَّل. تشير رسالة الأشكال البيانية يجب أن يوفِّر تطبيق المساعد تنفيذًا للرمزَين VoiceInteractionSessionService وVoiceInteractionSession على النحو الموضّح في مثال VoiceInteraction هذا. يتطلّب أيضًا الحصول على إذن BIND_VOICE_INTERACTION. يمكن للمساعد بعد ذلك يتم تمثيل العرض الهرمي للنص وطريقة العرض كمثيل لـ AssistStructure في onHandleAssist(). يتلقّى لقطة الشاشة من خلال onHandleScreenshot().