أي بيكونز:كيفية الحصول على طاقة المنارة المبثوثة (txPower)
-
20-12-2019 - |
سؤال
يبدو أن 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
الطبقة كما رأيتم.
نظرًا لأنك تقول إنه لا يمكنك إجراء عملية حسابية عكسية، فإن الطرق الأخرى الوحيدة التي يمكنني التفكير فيها للقيام بذلك هي:
- استخدم جهاز Android أو OSX Mavericks أو Linux، الذي لا يقدم مثل هذه القيود على قراءة هذا الحقل.
- أنشئ جدول بحث في تطبيق iOS الخاص بك لجميع أجهزة iBeacons الخاصة بك (مع قيم UUID/رئيسية/ثانوية فريدة مقابل قيم UUID/الرئيسية/الثانوية الفريدة).قيمة txPower الخاصة بهم)
من الواضح أن الخيار 2 أعلاه يتطلب منك تعيين معرفات فريدة لجميع أجهزة iBeacons الخاصة بك قيد الاختبار.