سؤال

أقوم حاليًا بتطوير Android BLE، وأواجه الكثير من المشكلات مع مجموعات Android BLE.

أداة التطوير الخاصة بي هي Samsung Galaxy J الذي يعمل بنظام Android 4.3.

أريد أن أعرف كيف يمكنني قراءة الخصائص من بليه وكتابة الخصائص (مثل التحقق من البيانات التي تلقيتها، ثم إرسال بيانات أخرى باستخدام بليه)

ولدي مشكلة خطيرة في فهم كيفية عمل عمليات الاسترداد التي تعمل بنظام Android Ble ، لا أفهم هذه الوظائف الخمس ... والدليل غير واضح ، هل يمكن لأي شخص أن يشرح بشكل جيد في شكل بسيط ؟؟؟

onCharacteristicWrite
onCharacteristicRead
onCharacteristicChanged
onDescriptorRead
onDescriptorWrite

وضعي الحالي هو أنني تمكنت من قراءة البيانات في رد الاتصال onCharacteristicChanged() ثم تحققت من استلام البيانات التي أحاول إرسالها باستخدام

characteristics.setValue(data)
gatt.writeCharacteristic(characteristics)

لكن مكدس Android BLE لا يتصل بـCharacteristicsWrite() وفي الواقع، Android معلق هناك..

أحاول البحث في Google عن Android BLE، ولا يوجد الكثير من المعلومات ولا توجد سوى مجموعة من الشكاوى حول مدى عدم استقرار مكدسات BLE......

هل كانت مفيدة؟

المحلول

كل من ردود اتصال من Android Ble لديه وظائفه؛

ondescriptorread وكتابة ondescriptorrite

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

oncharacteristicwrite

يستخدم هذا لإرسال البيانات إلى الجهاز BLE، عادة في وضع البيانات للجهاز BLE. يتم استدعاء هذا الاتصال عند الكتابة

giveacodicetagpre.

oncharacteristicread

يستخدم هذا لقراءة البيانات من الجهاز BLE يتم استدعاء الاتصال عند كتابة هذا الرمز

giveacodicetagpre.

onfcharacteristicschanged

يتم استدعاء الاتصال عند محاولة إرسال البيانات باستخدام WriteCharacteristic (الخصائص) ويستجيب الجهاز BLE مع بعض القيمة.

عادة ما يكون جهاز بلي لديه خصائص قليلة، لجعلها بسيطة، أسمي بعض الخصائص

  • الكتابة - خصائص الكتابة
  • قراءة - قراءة الخصائص

لتتحد الأمر واضحا، عند إرسال البيانات، ستحتاج إلى استخدام الخصائص قوية ، عند استجابة تطبيق Android يستمد قراءة الخصائص

نقطة مهمة للغاية لملاحظة أن Android Ble Stack يتيح لك كتابة الخصائص واحدة في وقت واحد فقط

مثال: إذا حاولت استدعاء خصائص الكتابة مرتين في نفس الوقت

giveacodicetagpre.

لن يصدر مكدس أندرويد BLE خصائص الكتابة الثانية!

نصائح أخرى

قبل setValue:characteristics.setValue(data) يجب عليك استخدام gatt.setCharacteristicNotification(Char,true) ل setNotification.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top