نظرة عامة على البلوتوث

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

باستخدام واجهات برمجة التطبيقات Bluetooth API، يمكن لأي تطبيق إجراء ما يلي:

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

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

يصف هذا المستند الملفات الشخصية للبلوتوث المختلفة ويشرح كيفية استخدام واجهات برمجة تطبيقات Bluetooth لتحقيق المهام الأربع الرئيسية اللازمة للتواصل باستخدام Bluetooth:

  • جارٍ إعداد البلوتوث.
  • العثور على الأجهزة المقترنة أو المتاحة في المنطقة المحلية
  • ربط الأجهزة
  • نقل البيانات بين الأجهزة.

للاطّلاع على عرض توضيحي لاستخدام واجهات برمجة التطبيقات Bluetooth، يُرجى الاطِّلاع على نموذج تطبيق Bluetooth Chat.

الأساسيّات

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

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

تستخدم بعض الأجهزة ملفًا شخصيًا لميزة "بلوتوث" يُعلن عن البيانات التي يوفّرها.

الفئات الرئيسية والواجهات

تتوفّر جميع واجهات برمجة تطبيقات Bluetooth في حزمة android.bluetooth. في ما يلي الفئات والواجهات التي تحتاجها لإنشاء اتصالات بلوتوث:

BluetoothAdapter
يمثِّل محوِّل البلوتوث المحلي (راديو البلوتوث). جهاز BluetoothAdapter هو نقطة الدخول إلى كل تفاعلات البلوتوث. باستخدام هذا، يمكنك اكتشاف أجهزة بلوتوث أخرى والاستعلام عن قائمة بالأجهزة (الإقران) وإنشاء مثيل لـ BluetoothDevice باستخدام عنوان MAC معروف، وإنشاء BluetoothServerSocket للاستماع إلى الاتصالات من الأجهزة الأخرى.
BluetoothDevice
يمثل جهازًا يعمل عن بُعد يتضمّن بلوتوث. استخدِم هذا الرابط لطلب الاتصال بجهاز بعيد من خلال BluetoothSocket أو لطلب معلومات عن الجهاز، مثل اسمه وعنوانه وفئته وحالة الربط.
BluetoothSocket
تمثل واجهة مقبس بلوتوث (على غرار TCP Socket). وهي نقطة الاتصال التي تسمح للتطبيق بتبادل البيانات مع جهاز بلوتوث آخر باستخدام InputStream و OutputStream.
BluetoothServerSocket
يمثل مقبس خادم مفتوح يتلقى الطلبات الواردة (على غرار بروتوكول TCP ServerSocket). لتوصيل جهازين، يجب أن يفتح أحد الأجهزة مقبس خادم بهذه الفئة. عندما يجري جهاز بعيد بلوتوث طلب اتصال بهذا الجهاز، يقبل الجهاز الاتصال ثم يعرض BluetoothSocket متصلاً.
BluetoothClass
يصف هذا الإعداد الخصائص العامة لجهاز البلوتوث وإمكاناته. هذه مجموعة للقراءة فقط من الخصائص التي تحدد فئات الجهاز وخدماته. على الرغم من أنّ هذه المعلومات تقدّم تلميحًا مفيدًا في ما يتعلّق بنوع الجهاز، فإنّ سمات هذه الفئة لا تصف بالضرورة جميع ملفات البلوتوث وخدماتها التي يتيحها الجهاز.
BluetoothProfile
واجهة تمثّل ملفًا شخصيًا بلوتوث. الملف الشخصي للبلوتوث هو عبارة عن مواصفات واجهة لاسلكية للاتصال عبر البلوتوث بين الأجهزة. ومن الأمثلة على ذلك الملف الشخصي لتطبيق Hands Free. لمزيد من مناقشة الملفات الشخصية، يمكنك الاطّلاع على الملفات الشخصية لميزة البلوتوث.
BluetoothHeadset
يتيح هذا الخيار استخدام سماعات الرأس التي تعمل بالبلوتوث لاستخدامها مع الهواتف الجوّالة. ويتضمّن ذلك الملف الشخصي لسماعة الرأس التي تعمل بالبلوتوث والملف الشخصي لسماعة بدون لمس الجهاز (الإصدار 1.5).
BluetoothA2dp
يحدد هذا الإعداد كيفية بث الصوت العالي الجودة من جهاز إلى آخر عبر اتصال بلوتوث باستخدام الملف الشخصي لتوزيع الصوت المتقدم (A2DP).
BluetoothHealth
يمثِّل خادمًا وكيلاً لملف تعريف الجهاز المتعلّق بالصحة يتحكّم في خدمة البلوتوث.
BluetoothHealthCallback
فئة مجردة تستخدمها لتنفيذ BluetoothHealth من عمليات معاودة الاتصال. يجب توسيع هذه الفئة وتنفيذ طرق معاودة الاتصال لتلقّي آخر الأخبار حول التغييرات في حالة تسجيل التطبيق وحالة قناة البلوتوث.
BluetoothHealthAppConfiguration
يمثل إعداد التطبيق الذي يسجله التطبيق التابع لجهة خارجية في Bluetooth Health للاتصال بجهاز بلوتوث عن بُعد.
BluetoothProfile.ServiceListener
واجهة ترسل إشعارات إلى عملاء الاتصال البيني للعمليات (IPC) في BluetoothProfile عند اتصالهم بالخدمة الداخلية التي تشغِّل ملفًا شخصيًا أو غير متصلين بها.