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

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

การใช้งาน

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

โหมดอุปกรณ์

เมื่อใช้ 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 จะช่วยให้แอปสแกนหาอุปกรณ์ที่อยู่ใกล้เคียงได้โดยไม่ต้อง ขอสิทธิ์เข้าถึงตำแหน่ง ดูข้อมูลเพิ่มเติมได้ที่ สิทธิ์ของบลูทูธ

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

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

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

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

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

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