การระบุระบบปฏิบัติการ Android

ตั้งแต่ Android 16 เป็นต้นไป เฟรมเวิร์ก Android จะมี บริการแอตทริบิวต์ทั่วไป (GATT) ที่ชื่อว่าบริการข้อมูล Android (AIS) ซึ่งช่วยให้อุปกรณ์ Bluetooth อ่านระดับ Android API เป็นลักษณะ GATT ของบริการได้ บริการนี้ช่วยให้ผู้ผลิตอุปกรณ์บลูทูธทราบว่าอุปกรณ์ต่อพ่วงบลูทูธจับคู่กับอุปกรณ์ส่วนกลางที่ใช้ระบบปฏิบัติการ Android หรือไม่ และจัดการตรรกะเฉพาะทางตามระดับ API

บริการข้อมูล Android (AIS)

AIS เป็นบริการ GATT มาตรฐานและมีอินสแตนซ์ของ AIS ในอุปกรณ์ได้เพียงอินสแตนซ์เดียว UUID ของบริการหลักคือ e73e0001-ef1b-4e74-8291-2e4f3164f3b5 ลักษณะระดับ API ของ Android (UUID: e73e0002-ef1b-4e74-8291-2e4f3164f3b5) มีระดับ API ของอุปกรณ์เป็นจำนวนเต็มแบบ 32 บิตที่ไม่มีการลงนามในรูปแบบไบนารี (little-endian) ค่าของลักษณะระดับ Android API มีความยาว 4 อ็อกเทต (เช่น ระดับ API 36 คือ 0x24_00_00_00) เมื่ออุปกรณ์ค้นพบได้ ค่าลักษณะระดับ Android API จะอ่านได้โดยไม่ต้องมีการตรวจสอบสิทธิ์หรือการให้สิทธิ์ เมื่ออุปกรณ์ไม่สามารถค้นพบได้ ลักษณะระดับ API ของ Android จะ อ่านได้เฉพาะเมื่อมีการตรวจสอบสิทธิ์และการให้สิทธิ์

ค้นพบบริการ

อุปกรณ์บลูทูธอยู่ในบทบาทไคลเอ็นต์ GATT และอุปกรณ์ที่ใช้ Android อยู่ในบทบาทเซิร์ฟเวอร์ หากต้องการค้นหา AIS และอ่านระดับ Android API อุปกรณ์ Bluetooth จะใช้ขั้นตอนโปรไฟล์ GATT เช่น ขั้นตอนการค้นหาบริการหลัก การค้นหาลักษณะ และการอ่านค่าลักษณะ ดูรายละเอียดเกี่ยวกับขั้นตอนเหล่านี้ได้ที่ข้อกำหนดเฉพาะของโปรไฟล์ GATT

ระดับ API กำหนดโดยพร็อพเพอร์ตี้ของระบบ ro.build.version.sdk หากค้นพบบริการหลักไม่ได้ แสดงว่าไม่ได้กำหนดพร็อพเพอร์ตี้ของระบบ หรือตั้งค่าเป็นค่าว่าง หรือระบบปฏิบัติการโฮสต์ไม่ใช่ Android

การตรวจสอบความถูกต้อง

หากต้องการยืนยันว่าค้นพบ AIS ได้ ให้เรียกใช้การทดสอบด้วยตนเองโดยจับคู่บลูทูธ อุปกรณ์ต่อพ่วงกับอุปกรณ์ที่ใช้ Android แล้วค้นหา UUID ของบริการ AIS ในบริการหลักที่ค้นพบ