أي بيكونز:كيفية الحصول على طاقة المنارة المبثوثة (txPower)

StackOverflow https://stackoverflow.com//questions/24001702

سؤال

يبدو أن iBeacons تبث معلمة txPower الخاصة بها (تقرير طاقة RSSI على مسافة متر واحد) والتي تستخدم في الحساب beacon.accuracy و beacon.proximity الخصائص (يمكن العثور على تفاصيل حول حزمة إعلانات iBeacon هنا).

لكن، CLBeacon لا يبدو أن الفئة تحتوي على خاصية لـ txPower.هل هناك طريقة يمكنني من خلالها الحصول على txPower باستخدام Core Location Framework، أم أحتاج إلى الانتقال إلى Core Bluetooth؟السبب وراء حاجتي إلى ذلك هو أنني أرغب في تجربة حساب دقة/قرب المنارة المخصصة لاكتشاف النطاق الفوري السريع جدًا للإنارة.في هذه الظروف عكس حساب txPower من accuracy ليس مساعدا.

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

المحلول

لسوء الحظ لا يمكنك الحصول على هذه القيمة برمجياً مع أي منهما CoreLocation أو CoreBluetooth.تمنع Apple الوصول إلى جميع بيانات iBeacon باستخدام CoreBluetooth (انظر تفصيلي لهذا هنا.) بالمثل مع CoreLocation إنه ببساطة لم يتم كشفه في CLBeacon الطبقة كما رأيتم.

نظرًا لأنك تقول إنه لا يمكنك إجراء عملية حسابية عكسية، فإن الطرق الأخرى الوحيدة التي يمكنني التفكير فيها للقيام بذلك هي:

  1. استخدم جهاز Android أو OSX Mavericks أو Linux، الذي لا يقدم مثل هذه القيود على قراءة هذا الحقل.
  2. أنشئ جدول بحث في تطبيق iOS الخاص بك لجميع أجهزة iBeacons الخاصة بك (مع قيم UUID/رئيسية/ثانوية فريدة مقابل قيم UUID/الرئيسية/الثانوية الفريدة).قيمة txPower الخاصة بهم)

من الواضح أن الخيار 2 أعلاه يتطلب منك تعيين معرفات فريدة لجميع أجهزة iBeacons الخاصة بك قيد الاختبار.

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