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

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

การใช้งาน

โปรไฟล์แอป BLE ปัจจุบันทั้งหมดอิงตาม Generic Attribute (GATT) Profile เมื่ออุปกรณ์ที่ใช้ 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 จุดเข้าใช้งานจะตื่นขึ้นเมื่อไม่พบอุปกรณ์ที่เฉพาะเจาะจง
  • แอปเฟรมเวิร์กจะได้รับการแจ้งเตือนที่ไม่ต้องการน้อยลงเมื่ออุปกรณ์ที่อยู่ใกล้เคียงอยู่ในระยะ
  • การสแกนอย่างต่อเนื่องช่วยให้แอปเฟรมเวิร์กได้รับการแจ้งเตือนเมื่ออุปกรณ์อยู่นอกระยะ

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