นี่คือรูปแบบที่ถูกต้องในการตรวจจับ iBeacons ด้วย Android Beacon Library ของ AltBeacon หรือไม่


95

ฉันแก้ไขแอปการใช้งานอ้างอิงของไลบรารี Android Beacon สำเร็จแล้วโดยใช้เลย์เอาต์บีคอนต่อไปนี้เพื่อให้ตรวจพบอุปกรณ์ iBeacon ที่ฉันมีอยู่ในมือ:

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        BeaconManager beaconManager = BeaconManager.getInstanceForApplication(this);
        beaconManager.getBeaconParsers().add(new BeaconParser().
               setBeaconLayout("m:0-3=4c000215,i:4-19,i:20-21,i:22-23,p:24-24"));
        beaconManager.bind(this);
    }
}

เนื่องจากยังใหม่กับแพ็กเก็ตภายในของ BLE ฉันไม่แน่ใจว่านี่เป็นรูปแบบที่ถูกต้องที่จะใช้หรือไม่ ไลบรารีรับรองมาตรฐานAltBeaconและเอกสารประกอบไม่ได้กล่าวถึงวิธีตรวจจับอุปกรณ์ iBeacon

  • รหัสนี้จะตรวจพบทั้งหมดหรือไม่อุปกรณ์ iBeaconหรือไม่ เช่นm:คำนำหน้ามีข้อ จำกัด เกินไปหรือเป็นลำดับไบต์ที่ถูกต้องที่ตรงกับข้อมูลจำเพาะของ iBeacon?
  • ในทำนองเดียวกันเค้าโครงที่เหลือตรงกับข้อกำหนดของ iBeacon หรือไม่

อ้างอิง:


แอปพลิเคชันอ้างอิงปิดให้บริการแล้ว ..
BlueTrin

1
@BlueTrin ขอบคุณอัปเดตลิงก์ไปยัง repo ใหม่
ento

คำตอบ:


67

สิ่งนี้ได้ผลสำหรับฉัน: "m: 2-3 = 0215, ฉัน: 4-19, ฉัน: 20-21, ฉัน: 22-23, p: 24-24"

ฉันไม่คิดว่าคุณจะต้องจับคู่ชิ้นส่วน 4c00 เพราะนั่นคือรหัสผู้ผลิตดังนั้นคุณอาจจะทิ้งมันไปและเริ่มต้นด้วย m: 2-3 = 0215 อย่างอื่นดูถูกต้องและดูเหมือนจะใช้ได้


8
ขอบคุณ! จากการทดสอบด้วยบีคอน Estimote ฉันสามารถยืนยันได้ว่าการm:2-3=0215เปลี่ยนแปลงนั้นจำเป็นจริงๆ
matiash

8
สิ่งนี้ใช้ได้ผลกับฉันด้วย .. ฉันใช้ .. beaconManager.getBeaconParsers () เพิ่ม (BeaconParser ใหม่ (). setBeaconLayout ("m: 2-3 = 0215, i: 4-19, i: 20-21, i: 22 -23, p: 24-24 "));
ยอห์น

2
คุณอ่านเค้าโครงนั้นได้อย่างไร? m, i และ p คืออะไร? ฉันมีบีคอนนอกกรอบที่ซื้อจากจีน ด้วยการใช้แอพ Bluetooth LE Scanner ฉันสามารถค้นหา UUID ของบีคอนหลักและรองได้ แต่ฉันจะหารูปแบบ UUID เพื่อใส่ลงไปได้setBeaconLayoutอย่างไร?
emen

3
@AimanB โปรดอ้างอิงสิ่งนี้: stackoverflow.com/questions/25319682/… . ในส่วนนี้ m: ข้อมูลผู้ผลิต, i: Proximity UUID, i: Major Number, i: Minor Number, p: Signal Power, d: battery level พวกเขาแสดงถึงการชดเชยไบต์ (คุณต้องเพิ่ม 6 ในขณะที่นับ) เช่นรหัสผู้ผลิตอยู่ระหว่าง 8 ถึง 9 ในสตริง "m: 2-3 = 0215, i: 4-19, i: 20-21, i: 22-23, หน้า: 24-24 ".
trueblue

3
มีวิธีสแกนหาสัญญาณเตือนโดยไม่คำนึงถึงค่าประมาณหรือไม่?
N Jay

4

คุณสามารถดาวน์โหลดข้อมูลจำเพาะของ iBeacon (คลิก "ดาวน์โหลดอาร์ตเวิร์คและข้อมูลจำเพาะ")

ในเวอร์ชันปัจจุบันรหัส บริษัทต้องเป็น0x4C00และประเภทบีคอนต้องเป็น0x0215และประเภทสัญญาณจะต้องต้องระบุฟิลด์อื่น ๆ ทั้งหมดและตามที่คุณระบุ

ใช่คุณพูดถูกต้องและจะตรวจพบ iBeacons ที่เข้ากันได้ทั้งหมด

OT: นอกจากนี้ยังระบุด้วยว่าช่วงเวลาการโฆษณาต้องเป็น 100ms แต่ฉันสงสัยอย่างจริงจังว่า iBeacons ทั้งหมดยึดติดกับสิ่งนั้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.