Nearby Connections هي واجهة برمجة تطبيقات لإنشاء الشبكات من الند للند تتيح للتطبيقات العثور على الأجهزة المجاورة والاتصال بها وتبادل البيانات معها بسهولة في الوقت الفعلي، بغض النظر عن إمكانية الاتصال بالشبكة.
في ما يلي بعض الأمثلة على حالات الاستخدام:
- لوح معلومات تعاوني: يمكنك تدوين الأفكار مع المشاركين القريبين منك على لوح معلومات افتراضي مشترك.
- الألعاب متعدّدة اللاعبين على الجهاز نفسه: يمكنك إعداد لعبة متعدّدة اللاعبين ودعوة مستخدمين آخرين قريبين منك للانضمام إليها.
- الألعاب على شاشات متعددة: يمكنك استخدام هاتف أو جهاز لوحي كذراع تحكّم في الألعاب لتشغيل الألعاب المعروضة على جهاز Android قريب ذي شاشة كبيرة، مثل Android TV.
- نقل الملفات بلا اتصال بالإنترنت: يمكنك مشاركة الصور أو الفيديوهات أو أي نوع آخر من البيانات بسرعة وبدون الحاجة إلى الاتصال بالشبكة.
مقدمة
تتيح خدمة Nearby Connections الإعلان عن الأجهزة المجاورة واكتشافها والاتصال بها بطريقة الند للند وبدون اتصال بالإنترنت. وتكون الاتصالات بين الأجهزة ذات معدل نقل بيانات عالٍ ووقت استجابة منخفض ومشفرة بالكامل لإتاحة عمليات نقل البيانات بسرعة وأمان.
يتمثّل الهدف الأساسي لواجهة برمجة التطبيقات هذه في توفير منصة بسيطة وموثوقة وذات أداء عالٍ. تستخدم واجهة برمجة التطبيقات هذه مزيجًا من تقنيات البلوتوث وBLE وWi-Fi، وتستفيد من نقاط القوة في كل منها مع تجنُّب نقاط الضعف في كل منها. يؤدي ذلك إلى تجريد تقلّبات البلوتوث وشبكة Wi-Fi بشكل فعّال على مستوى مجموعة من الأنظمة الأساسية وإصدارات نظام التشغيل، ما يسمح للمطوّرين بالتركيز على الميزات التي تهمّ المستخدمين.
نظرة عامة على واجهة برمجة التطبيقات
ينقسم استخدام واجهة برمجة التطبيقات إلى مرحلتَين: ما قبل الاتصال وما بعد الاتصال.
في مرحلة ما قبل الاتصال، يعلن المعلِنون عن أنفسهم، بينما يكتشف المستكشفون المعلِنين القريبين ويرسلون طلبات الاتصال. يؤدي طلب الاتصال من "المستكشِف" إلى "المعلِن" إلى بدء عملية مصادقة متماثلة تؤدي إلى قبول (أو رفض) طلب الاتصال من كلا الطرفين بشكل مستقل.
بعد قبول طلب الاتصال من كلا الطرفين، يتم إنشاء الاتصال وتدخل الأجهزة في مرحلة ما بعد الاتصال، والتي يمكن خلالها لكلا الطرفين تبادل البيانات.
الإعلانات والاستكشاف
سيصبح المعلِنون مرئيين للمستكشفين الآخرين، وسيتم إشعار المستكشفين عند العثور على معلِن جديد أو فقدانه.
إنشاء اتصالات
عندما يرغب جهاز مكتشِف في الاتصال بجهاز معلِن قريب، يمكنه طلب الاتصال.
سيتم إشعار كلا الطرفين بعملية بدء الاتصال، وسيكون لدى كل منهما الفرصة لقبول الاتصال أو رفضه.
بعد أن يردّ الطرفان، سيتم إعلام كل منهما بالنتيجة. إذا قبل كلا الطرفين الاتصال، يعتبر الاتصال قائمًا، ويمكن بعد ذلك بدء نقل البيانات.
تبادل البيانات
بعد إنشاء الاتصال، يكون استخدام واجهة برمجة التطبيقات متماثلاً، وبالتالي لا يوجد تمييز بين "المُعلِن" و"المُكتشِف".
يمكن الآن لكلا الطرفين تبادل البيانات. هناك 3 أنواع من الحمولة المتاحة:
- وحدات البايت: مصفوفات بايت تقتصر على 32 ألف بايت، وهي مناسبة لإرسال عناصر مثل البيانات الوصفية أو رسائل التحكّم.
- الملف: ملفات من أي حجم، ويتم نقلها من التطبيق إلى واجهة الشبكة مع الحد الأدنى من النسخ عبر حدود العملية.
- البث: هو بث بيانات يتم إنشاؤه بشكل فوري، كما هو الحال في الصوت/الفيديو المسجَّل، بدون معرفة الحجم النهائي مسبقًا.
سيتم إعلام المستلِمين بالبيانات الواردة الجديدة وأي تحديثات حول مستوى التقدّم أو عمليات الإلغاء أو الإخفاقات.
تكون الاتصالات التي يتم إنشاؤها بالازدواج الكامل، ما يعني أن المعلِنين والمكتشِفين يمكنهم إرسال البيانات واستلامها في الوقت نفسه.
تجميع البيانات
عند استخدام حزمة تطوير البرامج (SDK) لميزة "المشاركة عن قرب" في "خدمات Google Play"، يتم جمع إحصاءات الاستخدام لتحسين التجربة.
- مقاييس الأداء: يتم جمع بيانات عن وقت استجابة الاتصال ورصد الأجهزة وموثوقية الاتصال ومعدّل نقل البيانات عند البحث عن الأجهزة والاتصال بها باستخدام حزمة تطوير البرامج (SDK) لميزة "المشاركة عن قرب".
- معلومات الجهاز: يتم جمع طراز الجهاز والبلد وإصدار الإصدار واسم حزمة التطبيق وربطها بمقاييس الأداء لتحديد الشرائح الإقليمية والخاصة بالجهاز.
ويمكن للمستخدمين النهائيين السماح بجمع هذه البيانات أو رفضه من خلال الانتقال إلى "الإعدادات" > Google > "الاستخدام وبيانات التشخيص".