قبل أن يتمكن التطبيق من الاتصال عبر البلوتوث أو Bluetooth Low Energy،
عليك التأكّد من أنّ البلوتوث متوافق مع الجهاز، وإذا كان متوفرًا،
تأكَّد من تفعيله. لاحظ أن هذا الفحص لا يكون ضروريًا إلا إذا تم
السمة android:required
في إدخال ملف البيان <uses-feature.../>
هي
تم الضبط على false
في حال عدم توفّر تقنية البلوتوث، يجب إيقاف أي تقنية متوافقة مع البلوتوث. الجديدة. إذا كانت تقنية البلوتوث متاحة ولكنها غير مفعَّلة، يمكنك طلب تفعيل المستخدم للبلوتوث بدون مغادرة التطبيق
تتمثل الخطوة الأولى في إضافة أذونات البلوتوث إلى ملف البيان من أجل استخدام واجهات برمجة التطبيقات التالية.
بعد الحصول على الأذونات، يتم إكمال إعداد البلوتوث في خطوتَين.
باستخدام BluetoothAdapter
:
احصل على
BluetoothAdapter
.يجب توفُّر "
BluetoothAdapter
" لجميع أنشطة البلوتوث. تشير رسالة الأشكال البيانيةBluetoothAdapter
يمثل محوّل البلوتوث في الجهاز ( لاسلكي عبر البلوتوث). للحصول علىBluetoothAdapter
، يجب أولاً أن يكون لديكContext
استخدم هذا السياق للحصول على مثال علىBluetoothManager
خدمة نظام التشغيل. جارٍ الاتصال بالرقمBluetoothManager#getAdapter
ستحصل على كائنBluetoothAdapter
. إذا عرضتgetAdapter()
قيمة خالية، فهذا يعني أن الجهاز لا يتوافق مع البلوتوث.مثلاً:
Kotlin
val bluetoothManager: BluetoothManager = getSystemService(BluetoothManager::class.java) val bluetoothAdapter: BluetoothAdapter? = bluetoothManager.getAdapter() if (bluetoothAdapter == null) { // Device doesn't support Bluetooth }
Java
BluetoothManager bluetoothManager = getSystemService(BluetoothManager.class); BluetoothAdapter bluetoothAdapter = bluetoothManager.getAdapter(); if (bluetoothAdapter == null) { // Device doesn't support Bluetooth }
تفعيل البلوتوث
بعد ذلك، عليك التأكّد من تفعيل البلوتوث. اتصل
isEnabled()
إلى تحقّق مما إذا كانت تقنية البلوتوث مفعَّلة حاليًا. إذا قامت هذه الطريقة بإرجاع خطأ، فسيتم إيقاف البلوتوث. لطلب تفعيل البلوتوث، يُرجى الاتصالstartActivityForResult()
،ACTION_REQUEST_ENABLE
الهدف من الإجراء. تصدر هذه المكالمة طلبًا لتفعيل البلوتوث من خلال إعدادات النظام (بدون إيقاف التطبيق).مثلاً:
Kotlin
if (bluetoothAdapter?.isEnabled == false) { val enableBtIntent = Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE) startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT) }
Java
if (!bluetoothAdapter.isEnabled()) { Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); }
يظهر مربع حوار يطلب من المستخدم إذن المستخدم لتفعيل البلوتوث، كما هو موضّح في الشكل 1. إذا منح المستخدم إذنًا، يبدأ النظام في تفعيل البلوتوث، والتركيز مرة أخرى على التطبيق بعد اكتمال العملية (أو الإخفاق).
الشكل 1. مربع حوار تفعيل البلوتوث.
تم تمرير ثابت REQUEST_ENABLE_BT
إلى
startActivityForResult()
هو عدد صحيح محدّد محليًا يجب أن يكون أكبر من 0 أو مساويًا له. النظام
هذا الثابت يعود إليك في
onActivityResult()
التنفيذ كمعلمة requestCode
.
إذا نجح تفعيل البلوتوث، سيتلقّى نشاطك
رمز نتيجة RESULT_OK
في
معاودة الاتصال على "onActivityResult()
" إذا لم يتم تفعيل البلوتوث بسبب خطأ (أو
أجاب المستخدم بـ "الرفض") فسيتم حفظ رمز النتيجة
RESULT_CANCELED
اختياريًا، يمكن لتطبيقك أيضًا الاستماع إلى
ACTION_STATE_CHANGED
هدف البث، والذي يبثه النظام عند توفر حالة بلوتوث
التغييرات. يحتوي هذا البث على الحقول الإضافية
EXTRA_STATE
و
EXTRA_PREVIOUS_STATE
,
يحتوي على حالتيّ البلوتوث الجديدتَين والقديمتَين على التوالي. القيم المحتملة لـ
فإن هذه الحقول الإضافية
STATE_TURNING_ON
،
STATE_ON
,
STATE_TURNING_OFF
,
وSTATE_OFF
.
يمكن أن يفيدك الاستماع إلى هذا البث إذا كان تطبيقك بحاجة إلى رصد وقت التشغيل
التغييرات التي تم إجراؤها على حالة البلوتوث.
بعد تفعيل البلوتوث على الجهاز، يمكنك استخدام كل من البلوتوث الكلاسيكي البلوتوث منخفض الطاقة.
بالنسبة إلى الإصدار الكلاسيكي من البلوتوث، يمكنك العثور على الأجهزة التي تتضمّن بلوتوث. أو الاتصال بالأجهزة التي تتضمّن بلوتوث
بالنسبة إلى البلوتوث المنخفض الطاقة، يمكنك العثور على أجهزة BLE والاتصال بخادم GATT نقل بيانات BLE