บลูทูธพลังงานต่ำ

Android รองรับแพลตฟอร์มในตัวสำหรับบลูทูธพลังงานต่ำ (BLE) ในบทบาทหลักและมี API ที่แอปสามารถใช้เพื่อค้นหาอุปกรณ์ ค้นหาบริการ และส่งข้อมูล

Use Case ที่พบบ่อยมีดังนี้

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

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

ข้อควรระวัง: เมื่อผู้ใช้จับคู่อุปกรณ์กับอุปกรณ์อื่นโดยใช้ BLE แอปทั้งหมดในอุปกรณ์ของผู้ใช้จะเข้าถึงข้อมูลที่สื่อสารระหว่างอุปกรณ์ 2 เครื่องได้

ดังนั้น หากแอปของคุณเก็บข้อมูลที่ละเอียดอ่อน คุณควรใช้การรักษาความปลอดภัยระดับแอปเพื่อปกป้องความเป็นส่วนตัวของข้อมูลดังกล่าว

ข้อมูลเบื้องต้น

อุปกรณ์ที่เปิดใช้ BLE จะต้องสร้างช่องทางการสื่อสารก่อนจึงจะส่งข้อมูลระหว่างกันได้ การใช้ Bluetooth LE API กำหนดให้คุณต้องประกาศสิทธิ์หลายรายการในไฟล์ Manifest เมื่อแอปมีสิทธิ์ใช้บลูทูธแล้ว แอปจะต้องเข้าถึง BluetoothAdapter และตรวจสอบว่าอุปกรณ์มีบลูทูธหรือไม่ หากมี อุปกรณ์จะสแกนหาอุปกรณ์ BLE ที่อยู่ใกล้เคียง เมื่อพบอุปกรณ์แล้ว ระบบจะค้นหาความสามารถของอุปกรณ์ BLE โดยเชื่อมต่อกับเซิร์ฟเวอร์ GATT ในอุปกรณ์ BLE เมื่อเชื่อมต่อแล้ว คุณจะโอนข้อมูลด้วยอุปกรณ์ที่เชื่อมต่อได้ โดยขึ้นอยู่กับบริการและลักษณะการทำงานที่มี

คำสำคัญและแนวคิด

ต่อไปนี้เป็นข้อมูลสรุปเกี่ยวกับคําศัพท์และแนวคิดสําคัญของ BLE

  • โปรไฟล์แอตทริบิวต์ทั่วไป (GATT)
    โปรไฟล์ GATT เป็นข้อกำหนดทั่วไปสำหรับการส่งและรับข้อมูลสั้นๆ ที่เรียกว่า "แอตทริบิวต์" ผ่านลิงก์ BLE โปรไฟล์แอปพลิเคชัน BLE ปัจจุบันทั้งหมดอิงตาม GATT ดูข้อมูลเพิ่มเติมจากตัวอย่าง BluetoothLeGatt ของ Android บน GitHub
  • โปรไฟล์
    Bluetooth SIG กำหนดโปรไฟล์มากมายสำหรับอุปกรณ์ BLE โปรไฟล์คือข้อกำหนดสำหรับวิธีการทำงานของอุปกรณ์ในแอปพลิเคชันหนึ่งๆ โปรดทราบว่าอุปกรณ์หนึ่งๆ สามารถใช้โปรไฟล์ได้มากกว่า 1 โปรไฟล์ เช่น อุปกรณ์อาจมีเครื่องวัดอัตราการเต้นของหัวใจและเครื่องตรวจระดับแบตเตอรี่
  • Attribute Protocol (ATT)
    GATT สร้างขึ้นจากโปรโตคอลแอตทริบิวต์ (ATT) หรือที่เรียกว่า GATT/ATT ATT ได้รับการเพิ่มประสิทธิภาพให้ทำงานบนอุปกรณ์ BLE ได้ ด้วยเหตุนี้ จึงใช้ไบต์ให้น้อยที่สุด แอตทริบิวต์แต่ละรายการจะระบุด้วยตัวระบุที่ไม่ซ้ำกันแบบสากล (UUID) ซึ่งเป็นรูปแบบ 128 บิตมาตรฐานสำหรับรหัสสตริงที่ใช้ระบุข้อมูลโดยไม่ซ้ำกัน แอตทริบิวต์ที่ ATT ขนส่งจะจัดรูปแบบเป็นลักษณะและบริการ
  • ลักษณะเฉพาะ
    ลักษณะประกอบด้วยค่าเดี่ยวและตัวระบุ 0-n ที่อธิบายค่าของลักษณะ คุณอาจคิดว่าลักษณะเป็นประเภทที่คล้ายกับคลาส
  • ตัวระบุ
    ข้อบ่งชี้คือแอตทริบิวต์ที่กําหนดซึ่งอธิบายค่าลักษณะ ตัวอย่างเช่น ข้อบ่งชี้อาจระบุคำอธิบายที่มนุษย์อ่านได้ ช่วงค่าที่ยอมรับได้สำหรับค่าของลักษณะ หรือหน่วยวัดเฉพาะสำหรับค่าของลักษณะ
  • บริการ
    บริการคือคอลเล็กชันลักษณะ เช่น คุณอาจมีบริการชื่อ "เครื่องวัดอัตราการเต้นของหัวใจ" ที่มีลักษณะ เช่น "การวัดอัตราการเต้นของหัวใจ" คุณสามารถดูรายการโปรไฟล์และบริการที่ใช้ GATT ที่มีอยู่ได้ใน bluetooth.org

บทบาทและความรับผิดชอบ

เมื่ออุปกรณ์โต้ตอบกับอุปกรณ์ BLE บทบาทและความรับผิดชอบจะแบ่งออกเป็น 2 วิธีดังนี้

  • ส่วนกลางกับอุปกรณ์ต่อพ่วง ซึ่งวิธีนี้ใช้กับการเชื่อมต่อ BLE เอง นั่นคืออุปกรณ์ในการสแกน มองหาโฆษณา และอุปกรณ์ในบทบาทอุปกรณ์ต่อพ่วงโฆษณา อุปกรณ์ 2 เครื่องที่รองรับบทบาทอุปกรณ์ต่อพ่วงเท่านั้นจะสื่อสารกันไม่ได้ และอุปกรณ์ 2 เครื่องที่รองรับบทบาทส่วนกลางเท่านั้นก็จะสื่อสารกันไม่ได้เช่นกัน

  • เซิร์ฟเวอร์ GATT กับไคลเอ็นต์ GATT ซึ่งจะกำหนดวิธีที่อุปกรณ์ 2 เครื่องสื่อสารกันหลังจากที่สร้างการเชื่อมต่อแล้ว อุปกรณ์ในบทบาทไคลเอ็นต์จะส่งคำขอข้อมูล และอุปกรณ์ในบทบาทเซิร์ฟเวอร์จะดำเนินการตามคำขอ

หากต้องการทำความเข้าใจความแตกต่างระหว่างส่วนบทบาทอุปกรณ์ต่อพ่วงส่วนกลางกับเซิร์ฟเวอร์-ไคลเอ็นต์ ให้ลองดูตัวอย่างพื้นที่ที่คุณมีโทรศัพท์ Android และเครื่องมือติดตามกิจกรรมที่เปิดใช้ BLE ซึ่งรายงานข้อมูลเซ็นเซอร์กลับไปยังโทรศัพท์

  • โทรศัพท์ซึ่งเป็นอุปกรณ์ส่วนกลางจะสแกนหาอุปกรณ์ BLE อย่างต่อเนื่อง เครื่องมือติดตามกิจกรรมซึ่งเป็นอุปกรณ์ต่อพ่วงจะโฆษณาและรอรับคำขอเชื่อมต่อ

  • หลังจากโทรศัพท์และอุปกรณ์ติดตามกิจกรรมสร้างการเชื่อมต่อแล้ว อุปกรณ์จะเริ่มโอนข้อมูลเมตา GATT ให้แก่กัน ในกรณีนี้ แอปที่ทำงานในโทรศัพท์จะส่งคำขอข้อมูล จึงทำหน้าที่เป็นไคลเอ็นต์ GATT อุปกรณ์ติดตามกิจกรรมจะตอบสนองต่อคําขอเหล่านั้น จึงทําหน้าที่เป็นเซิร์ฟเวอร์ GATT

การออกแบบแอปอีกแบบหนึ่งอาจเกี่ยวข้องกับการที่โทรศัพท์ทำหน้าที่เป็นเซิร์ฟเวอร์ GATT แทน ดูข้อมูลเพิ่มเติมที่ BluetoothGattServer