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

ตั้งแต่ Android 16 เป็นต้นไป เฟรมเวิร์ก Android จะมีบริการแอตทริบิวต์ทั่วไป (GATT) ที่เรียกว่าบริการข้อมูล Android (AIS) ซึ่งช่วยให้อุปกรณ์บลูทูธอ่านระดับ API ของ Android เป็นแอตทริบิวต์ 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) ค่าของลักษณะระดับ API ของ Android มีความยาว 4 อ็อกเต็ต (เช่น API ระดับ 36 คือ 0x24_00_00_00) เมื่ออุปกรณ์ค้นพบได้ ระบบจะอ่านค่าลักษณะระดับ API ของ Android ได้โดยไม่ต้องมีการตรวจสอบสิทธิ์หรือการให้สิทธิ์ เมื่ออุปกรณ์ตรวจไม่พบ คุณจะสามารถอ่านลักษณะระดับ Android API ได้เฉพาะเมื่อมีการตรวจสอบสิทธิ์และการให้สิทธิ์เท่านั้น

สำรวจบริการ

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

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

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

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