تعديل تطبيقك من خلال فهم الإجراءات التي يتخذها المستخدمون

أصبحت أجهزة الجوّال جزءًا شائعًا من الحياة اليومية للكثيرين. ويحصل المستخدمون على هواتفهم معهم على مدار اليوم أثناء القيادة، والمشي، والتمارين، والعمل، واللعب.

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

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

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

تلقّي معلومات عن الأنشطة باستخدام موارد قليلة

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

تعمل واجهة برمجة تطبيقات نقل التعرف على النشاط على تمكين هذه السيناريوهات من خلال تنفيذ التحسينات الثقيلة المرتبطة باكتشاف التغييرات في نشاط المستخدم. يشترك تطبيقك في عملية انتقال في الأنشطة محل الاهتمام، ولا تُبلغك واجهة برمجة التطبيقات به إلا عند اللزوم. لا تحتاج إلى تنفيذ استدلالات معقدة لاكتشاف متى يبدأ النشاط أو ينتهي.

تعرض واجهة برمجة تطبيقات "التعرف على الأنشطة" نتائجها لمعاودة الاتصال، والتي يتم تنفيذها عادةً في صورة IntentService في تطبيقك. ويتم تقديم النتائج على فترات زمنية تحددها، أو يمكن لتطبيقك استخدام النتائج التي يطلبها عملاء آخرون بدون استهلاك المزيد من الطاقة.

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

وتُنفِّذ واجهة برمجة تطبيقات التعرّف على النشاط التجاري المجهود الكبير لمعالجة الإشارات الواردة من الجهاز لتحديد الأنشطة الحالية. يتلقّى تطبيقك قائمة بالأنشطة التي تم رصدها، ويتضمّن كلّ منها confidence وtype موقع إلكتروني.

تشير السمة confidence إلى احتمالية تنفيذ المستخدم للنشاط الممثَّل في النتيجة. تمثّل السمة type النشاط الذي تم رصده للجهاز مقارنةً بالكيانات في العالم الفعلي، على سبيل المثال، استخدام الجهاز على دراجة أو استخدام الجهاز لمستخدم يعمل.