يقدّم نظام 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).
يمكن للمستخدمين ضبط المساعد من خلال اختيار الإعدادات > التطبيقات > التطبيقات التلقائية > مساعدة الإدخال الصوتي. يمكن للمستخدمين تغيير خيارات النظام مثل الوصول محتويات الشاشة كنص والوصول إلى لقطة شاشة، كما هو موضح في الشكل 2.
التطبيق المصدر
للتأكّد من أنّ تطبيقك يعمل مع "مساعد Google" كمصدر للمعلومات للمستخدم، يُرجى اتّباع الخطوات التالية: ما عليك سوى اتّباع أفضل أدوات تسهيل الاستخدام الممارسات. يوضّح هذا القسم كيفية تقديم معلومات إضافية. للمساعدة في تحسين تجربة المستخدم بالإضافة إلى السيناريوهات التي تحتاج إلى معالجة خاصة، مثل طرق العرض المخصصة.
مشاركة معلومات إضافية مع المساعد
بالإضافة إلى النص ولقطة الشاشة، يمكن لتطبيقك مشاركة المعلومات الأخرى مع المساعد. على سبيل المثال، الموسيقى الخاصة بك يمكن للتطبيق اختيار تمرير معلومات الألبوم الحالي حتى يتمكن "مساعد Google" من اقتراح إجراءات أكثر ذكاءً مصممة استنادًا إلى النشاط الحالي. لاحظ أن واجهات برمجة تطبيقات المساعدة عدم توفّر عناصر تحكّم في الوسائط لإضافة عناصر التحكّم في الوسائط، يُرجى الاطّلاع على تطبيقات "مساعد Google" والوسائط.
لتوفير معلومات إضافية للمساعد، يوفر تطبيقك سياق التطبيق العام من خلال تسجيل مستمع للتطبيق توفر معلومات خاصة بالنشاط باستخدام استدعاءات الأنشطة كما هو موضح في الشكل 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()
,
والتي يمكن أن توفر الفوائد التالية:
- يضبط المحتوى المقدم النية في تعكس سياق المستوى الأعلى للنشاط بشكل أفضل.
- توفّر معرّف الموارد المنتظم (URI) من المحتوى المعروض.
- يملأ
setClipData()
مع القيم الإضافية. المحتوى محل الاهتمام الذي يشاهده المستخدم حاليًا.
ملاحظة: من المحتمل أن تحتاج التطبيقات التي تستخدم تحديد نص مخصَّص إلى تنفيذ
تنفيذ onProvideAssistContent()
والاتصال بـ setClipData()
.
التنفيذ التلقائي
إذا لم تكن onProvideAssistData()
أو onProvideAssistContent()
يستمر تنفيذ عملية الاسترداد، ويستمر النظام في المتابعة ويجتاز
المعلومات التي تم جمعها تلقائيًا إلى المساعد ما لم
تم وضع علامة على النافذة على أنها آمنة.
كما هو موضح في الشكل 3، يستخدم النظام آليات التنفيذ التلقائية لكل من onProvideStructure()
وonProvideVirtualStructure()
من أجل
تجميع النص وعرض معلومات التسلسل الهرمي. إذا كانت طريقة العرض تنفّذ خيارات مخصَّصة
رسم نصي، يمكنك إلغاء onProvideStructure()
لتوفير
المساعد بالنص الذي يظهر للمستخدم من خلال الاتصال بـ setText(CharSequence)
.
في معظم الحالات، يساعد تنفيذ دعم إمكانية الوصول أو مساعد Google للحصول على المعلومات التي يحتاج إليها لتنفيذ دعم الوصول، اتباع أفضل الممارسات الموضحة في مقالة إنشاء تطبيقات يمكن الوصول إليها، بما في ذلك ما يلي:
- أدخِل سمات
android:contentDescription
. - تعبئة
AccessibilityNodeInfo
لطرق العرض المخصّصة - الماركة
تأكَّد من تخصيص عناصر
ViewGroup
بشكل صحيح اعرض لأطفالهم.
استبعاد المشاهدات من المساعدين
لمعالجة المعلومات الحساسة، يمكن لتطبيقك استبعاد العرض الحالي من المساعد
من خلال إعداد معلَمة تنسيق FLAG_SECURE
لـ WindowManager
. يجب ضبط FLAG_SECURE
بشكل صريح من أجل
كل نافذة ينشئها النشاط، بما في ذلك مربّعات الحوار يمكن لتطبيقك أيضًا استخدام
setSecure()
المطلوب استبعادها
سطح من المساعد. لا يوجد
آلية عامة (على مستوى التطبيق) لاستبعاد جميع المشاهدات من المساعد. ملاحظة
أنّ FLAG_SECURE
لا يتسبّب في إيقاف عمليات استدعاء واجهة برمجة التطبيقات Assist API
إطلاق النار ويبقى بإمكان النشاط الذي يستخدم "FLAG_SECURE
" الوصول بشكل صريح
تقديم معلومات إلى أحد تطبيقات المساعد باستخدام عمليات الاستدعاء المذكورة سابقًا
هذا الدليل.
ملاحظة: بالنسبة إلى حسابات العمل (Android for Work)،
يمكن للمشرف إيقاف
جمع بيانات المساعد لملف العمل باستخدام طريقة setScreenCaptureDisabled()
من DevicePolicyManager
API.
التفاعلات الصوتية
يتم أيضًا استدعاء استدعاءات واجهة برمجة التطبيقات المساعدة عبارة رئيسية الرصد. لمزيد من المعلومات، يُرجى الاطّلاع على منتدًى لهم وثائق الإجراءات.
اعتبارات الترتيب Z
يستخدم أحد المساعدين نافذة مركّبة خفيفة الحجم يتم عرضها أعلى النشاط الحالي. نظرًا لأنه يمكن للمستخدم تفعيل المساعد في أي وقت، عدم إنشاء دائم نوافذ تنبيه النظام التي تتداخل مع نافذة التراكب، كما هو موضح في الشكل 4.
إذا كان تطبيقك يستخدم لتنبيه النظام، عليك إزالتها على الفور؛ لأن تركها على يؤدي إلى خفض تجربة المستخدم.
تطبيق الوجهة
تستفيد تطبيقات "مساعد Google" عادةً من الربط بصفحة معيّنة للعثور على التطبيقات الوجهة. لجعل تطبيق وجهة محتملة، لذا يمكنك إضافة دعم الربط بصفحة معيّنة. مطابقة بين سياق المستخدم الحالي والروابط لصفحة في التطبيق أو الإجراءات المحتملة الأخرى المعروضة في نافذة التراكب (الموضحة في الخطوة 3 في الشكل 1) خاصة بتنفيذ مساعد Google. بالنسبة مثال، يستخدم تطبيق "مساعد Google" الروابط لمواضع معيّنة وروابط التطبيقات من أجل توجيه حركة البيانات إلى تطبيقات الوجهة.
استخدام "مساعد Google"
وقد تحتاج إلى استخدام مساعدك الخاص. كما هو موضّح في الشكل
2، سيتمكّن المستخدم من اختيار تطبيق المساعد المُفعَّل. تشير رسالة الأشكال البيانية
يجب أن يوفِّر تطبيق المساعد تنفيذًا للرمزَين VoiceInteractionSessionService
وVoiceInteractionSession
على النحو الموضّح في
مثال VoiceInteraction
هذا. يتطلّب أيضًا الحصول على إذن BIND_VOICE_INTERACTION
. يمكن للمساعد بعد ذلك
يتم تمثيل العرض الهرمي للنص وطريقة العرض كمثيل لـ AssistStructure
في onHandleAssist()
.
يتلقّى لقطة الشاشة من خلال onHandleScreenshot()
.