Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android Things
Code

الاتصال أشياء الروبوت الهاتف ذكي مع اتصالات قريبة 2.0

by
Difficulty:IntermediateLength:MediumLanguages:

Arabic (العربية/عربي) translation by Adjatay Bashroh Aldad (you can also view the original English article)

واحد من أول الأشياء التي تريد المستخدمين القيام به مع أحد الأجهزة منزلية ذكية جديدة هو الحصول عليه على الشبكة اللاسلكية. العديد من الأجهزة التونسي تفتقر إلى الشاشة أو لوحة المفاتيح، وذلك إحدى الطرق للقيام بذلك بالسماح للمستخدمين بإقران الهاتف ذكي للجهاز حيث أن يمكن التحكم وتكوين الجهاز. هذا كيفية عمل عش وصفحة Google الرئيسية، بين أمور أخرى، وال API 2.0 اتصالات قريبة يجعل من الممكن.

Google Home companion app connection screen

في هذه المقالة سوف تحصل على مقدمة إلى API 2.0 الاتصالات القريبة وكيف يمكن استخدامه للزوج الروبوت ذكي إلى جهاز 'الروبوت الأشياء' من أجل تزويد المستخدمين بجهاز رفيق التجربة.

ما هي الاتصالات القريبة API؟

يسمح API اتصالات قريبة اثنين من الأجهزة بالاتصال مع بعضها البعض مباشرة عبر تقنية Bluetooth أو لاسلكية دون استخدام نقطة وصول مركزية. وهناك الدورين الذي قد تتخذه جهاز: المعلن، والذي يتيح لأجهزة أخرى تعرف أنه متاح ليكون متصلاً ب، ومكتشف، الذي يحاول العثور على المعلنين والاتصال بهم. بمجرد توصيل مجموعة من الأجهزة (يعرف أيضا باسم "النهاية" في هذه المرحلة) معا، أنهم قد إرسال البيانات إلى أي نقطة النهاية الأخرى في شبكة اتصالات القريبة.

هناك اثنين من الاستراتيجيات التي يمكن استخدام API اتصالات القريبة لتوصيل الأجهزة معا. الأول، P2P_STAR، هو أبسط للعمل مع. وهو يتألف من المعلن واحد التي يمكن أن تدعم متعددة المكتشفون الاتصال به. الثاني، P2P_CLUSTER، يسمح لأي عدد من الأجهزة للاتصال، وقبول الاتصالات من أي عدد من الأجهزة. يؤدي هذا إلى إنشاء شبكة متداخلة مع نقطة مركزية أقل من الفشل، على الرغم من أن الأمر قد يستغرق أيضا المزيد من عرض النطاق الترددي. هذه الاستراتيجية مثالي للحمولات الأصغر حجماً التي لا تحتاج إلى الذهاب من خلال جهاز مركزي، كما هو الحال للألعاب.

هذا البرنامج التعليمي سوف تركز على استخدام استراتيجية نجمة أبسط لتوصيل جهاز التونسي كمعلن، وسيتم استخدام الهاتف الذكي للمستخدم كمكتشف. ومع ذلك، نهاية، ينبغي أيضا أن معلومات كافية لتنفيذ استراتيجية كتلة كذلك.

دعونا الحصول على إعداد!

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

بعد أن قمت بتشغيل مزامنة جرادلي، فتح الملفات AndroidManifest.xml لكل من وحدات وتتضمن الأذونات التالية ضمن تطبيق العقد.

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

 MainActivity ستحتاج كل من العناصر وحدات الجوّال إلى تنفيذ الواجهات المستخدمة في عمليات رد خدمات Google Play ، على النحو التالي:

بمجرد لك التحقق من أن المستخدم لديه أذونات الموقع المناسب في onCreate()، يمكنك البدء بالاتصال 'خدمات جوجل اللعب' استخدام API اتصالات القريبة.

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

الإعلان عن اتصالات القريبة

عند العمل مع اتصالات API القريبة، سوف تحتاج إلى إنشاء كوConnectionLifecycleCallbackالذي، كما يوحي الاسم، يمكن تشغيلها على أحداث دورة حياة اتصال مختلفة. لهذا العرض، سوف نستخدم فقط الأسلوب onConnectionInitiated(). كما أنها ستوفر إشارة إلى نقطة النهاية الأولى الذي يحاول الاتصال به وقبول الاتصال ثم وقف الدعاية. إذا كان الاتصال غير ناجح، يمكنك إعادة تشغيل التطبيق إعلانية.

ربما لاحظتم أن الطريقة المذكورة أعلاه أيضا مراجع كائن بايلوادكالباك. يحتوي هذا الكائن على الأساليب التي يتم استدعاؤها عند إرسال حمولة البيانات من المعلن إلى نقطة نهاية، فضلا عن عند تلقي البيانات من نقطة نهاية. أسلوب onPayloadReceived() حيث أن تعاملنا مع أي إرسال البيانات إلى جهاز 'الروبوت الأشياء' لدينا. يحتوي هذا الأسلوب على الكائن الحمولة التي يمكن أن تتحول إلى صفيف من البايت، وسلسلة أحرف يمثل عنوان نقطة النهاية للجهاز المرسل.

عند هذه النقطة، يمكنك بدء الإعلان على جهازك التونسي بالطريقة التالية:

ستلاحظ أن هذا حيث نطبق استراتيجية P2P_STAR لشبكة اتصالات المجاورة لنا.

عندما تريد إرسال حمولة إلى جهاز آخر، يمكنك استخدام الأسلوب Nearby.Connections.sendPayload() مع مرجع API جوجل عميل، واسم نقطة النهاية الخاصة بك، ورسم صفيف بايت من البيانات ترغب في إرسال.

تلميح: تمكين وأي فأي على إعادة التشغيل

خدعة واحدة التي وجدتها مفيدة في حين تعمل مع API اتصالات قريبة على جهاز 'الروبوت الأشياء' هو إعادة تمكين وأي فأي على إعادة التشغيل، كالجهاز يمكن في نهاية المطاف مع اللاسلكية تعطيل إذا كان يتم إيقاف تشغيل الجهاز أو انقطاع الطاقة أثناء الإعلان. يمكنك القيام بذلك باسترداد WifiManager نظام ويفيماناجير والدعوة setWifiEnabled().

اكتشاف الأجهزة مع اتصالات قريبة

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

المكتشف في ConnectionLifecycleCallback (موبايل التطبيق) أيضا مشابهاً للمعلن:

ما هو مختلف هو أن المكتشفون سيتطلب اندبوينتديسكوفيريكالباك التي سيتم استخدامها عند العثور على معلن ولكن لم تتصل. وسيشرع هذا الكائن طلب الاتصال بالمعلن.

عندما الخاص بك مكتشف قد تتصل خدمات جوجل اللعب، فيمكنك بدء اكتشاف باستخدام الأمر التالي:

وأخيراً، عندما تريد قطع الاتصال معلن، يمكنك استخدام الأسلوب disconnectFromEndpoint() من API اتصالات القريبة. عموما فكرة جيدة للقيام بذلك في رد onDestroy() النشاط الخاص بك.

استنتاج

في هذه المقالة تعرفنا API 2.0 الاتصالات القريبة للروبوت في سياق تهيئة تطبيق مصاحب لجهاز 'الروبوت الأشياء التونسي'.

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

حين كنت هنا، تحقق بعض من وظيفة أخرى في تطوير الروبوت الأشياء التونسي!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.