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

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

การนำไปปฏิบัติ

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

โหมดอุปกรณ์

เมื่อใช้ BLE อุปกรณ์ Android สามารถทำหน้าที่เป็นอุปกรณ์ต่อพ่วง อุปกรณ์กลาง หรือทั้งสองอย่างได้ โหมดอุปกรณ์ต่อพ่วงช่วยให้อุปกรณ์ส่งแพ็กเก็ตโฆษณาได้ โหมดกลางช่วยให้อุปกรณ์สแกนหาโฆษณา อุปกรณ์ Android ที่ทำหน้าที่เป็นทั้งอุปกรณ์ต่อพ่วงและอุปกรณ์ส่วนกลางสามารถสื่อสารกับอุปกรณ์ต่อพ่วง BLE อื่น ๆ ในขณะที่ส่งโฆษณาในโหมดอุปกรณ์ต่อพ่วง อุปกรณ์ที่รองรับ Bluetooth 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

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

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

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

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

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

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