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

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

การใช้งาน

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

โหมดอุปกรณ์

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

การสแกน BLE

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

การสแกนตำแหน่ง

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

  1. ไปที่การตั้งค่า > ความปลอดภัยและตำแหน่ง > ตำแหน่ง
  2. ตรวจสอบว่าปุ่มเปิด/ปิดตำแหน่งเปิด/ปิดอยู่ในตำแหน่งเปิด
  3. ไปที่โหมด
  4. เลือกโหมดความแม่นยำสูงหรือประหยัดแบตเตอรี่

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

ตั้งแต่ Android 12 เป็นต้นไป สิทธิ์ BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE และ BLUETOOTH_CONNECT จะช่วยให้แอปสแกนหาอุปกรณ์ที่อยู่ใกล้เคียงได้โดยไม่ต้องขอสิทธิ์เข้าถึงตำแหน่ง ดูข้อมูลเพิ่มเติมได้ที่หัวข้อ สิทธิ์บลูทูธใหม่ใน Android 12

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

กรองผลการสแกน

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

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

  • สําหรับเหตุการณ์ OnFound AP หลักจะตื่นขึ้นเมื่อตรวจพบอุปกรณ์ที่เฉพาะเจาะจง
  • สําหรับเหตุการณ์ OnLost AP จะตื่นขึ้นเมื่อไม่พบอุปกรณ์ที่เฉพาะเจาะจง
  • แอปเฟรมเวิร์กจะได้รับการแจ้งเตือนที่ไม่ต้องการน้อยลงเมื่ออุปกรณ์ใกล้เคียงอยู่ในระยะสัญญาณ
  • การสแกนอย่างต่อเนื่องช่วยให้แอปเฟรมเวิร์กได้รับการแจ้งเตือนเมื่ออุปกรณ์อยู่นอกระยะสัญญาณ

ตัวกรองการสแกนอาจอิงตามการค้นพบโฆษณาของอุปกรณ์ (เหตุการณ์ OnFound) เลเยอร์ Java สามารถระบุพารามิเตอร์ เช่น การค้นพบครั้งแรก (หรือจํานวนโฆษณาที่ระบุนับตั้งแต่การค้นพบครั้งแรก) ใช้การกรอง BLE โดยใช้ คำสั่ง HCI ตัวกรองเนื้อหาแพ็กเก็ตโฆษณา