ข้อแตกต่างของการพัฒนา iBeacon บน Android กับ iOS ที่ควรทราบ

บน iOS

  1. iBeacon เป็น service ของ OS ซึ่งทำงานตลอดเวลา นักพัฒนาต้องลงทะเบียน Proximity UUID, Major และ Minor (Major และ Minor สามารถเป็น nil ได้) ที่สนใจไว้ เมื่อ iOS ตรวจพบเจออุปกรณ์ตามเงื่อนไขที่ตั้งไว้ ก็จะแจ้ง App ของเราให้ทราบเพื่อตื่นขึ้นมาทำงานได้
  2. ข้อมูลที่ได้รับจาก service จะทราบเพียง Service UUID ซึ่งจะเปลี่ยนไปแต่ละครั้งที่พบ beacon ตัวนั้น ถ้า beacon ยังอยู่ในระยะ Service UUID จะคงที่ ถ้าห่างไปจนหายแล้วกลับเข้ามาใหม่ Service UUID จะเปลี่ยนไป ค่าที่สามารถรับค่าได้คือ Major, Minor, RSSI ค่าที่ไม่สามารถรู้ได้คือ Proximity UUID และ MAC Address
  3. สามารถโปรแกรมให้ iOS ทำตัวเป็น Broadcaster หรือ Receiver ก็ได้

บน Android

  1. บน Android ไม่มี iBeacon service นักพัฒนาต้องสร้าง service ขึ้นมาเองซึ่งเสี่ยงที่ต้องชนกับ service ของ App อื่นที่อาจจะใช้ Bluetooth LE เพื่อ scan เหมือนกัน ดังนั้นต้องตรวจสอบค่อนข้างละเอียดเพื่อไม่ให้แย่งกันใช้ Hardware ในเวลาเดียวกัน
  2. ข้อมูลที่ได้จากการ scan จะได้ Hardware address (MAC address), RSSI, Device Name และ Scan Record ใน Scan Record เป็นข้อมูลดิบต้องสกัดข้อมูลออกมาเองเพื่อให้ได้ Proximity UUID, Minor และ Major ตามข้อกำหนดของ iBeacon
  3. ณ ปัจจุบัน Android ไม่สามารถทำตัวเป็น Broadcaster ได้ คือจำลองตัวเองเป็นอุปกรณ์ iBeacon เพื่อกระจายสัญญาณไม่ได้ ทำได้แค่ Receiver ซึ่งไม่ใช่ข้อจำกัดทางฮาร์ดแวร์ แต่เป็นที่ API ของ Android เอง ในอนาคตน่าจะสามารถทำได้

Comments

comments

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>