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