Identifikasi Android OS

Mulai Android 16, framework Android menyertakan layanan Atribut Generik (GATT) yang disebut layanan informasi Android (AIS), yang memungkinkan perangkat Bluetooth membaca level API Android sebagai karakteristik GATT layanan. Layanan ini memungkinkan produsen perangkat Bluetooth mengetahui apakah periferal Bluetooth disambungkan dengan perangkat pusat yang menjalankan Android OS, dan mengelola logika khusus berdasarkan level API.

Layanan informasi Android (AIS)

AIS adalah layanan GATT standar dan hanya boleh ada satu instance AIS di perangkat. UUID layanan utama adalah e73e0001-ef1b-4e74-8291-2e4f3164f3b5. Karakteristik level API Android (UUID: e73e0002-ef1b-4e74-8291-2e4f3164f3b5) berisi level API perangkat sebagai bilangan bulat 32-bit yang tidak ditandatangani dalam bentuk biner (little-endian). Nilai karakteristik level API Android memiliki panjang 4 octet (misalnya, level API 36 adalah 0x24_00_00_00). Jika perangkat dapat ditemukan, nilai karakteristik level API Android dapat dibaca tanpa autentikasi atau otorisasi. Jika perangkat tidak dapat ditemukan, karakteristik level API Android hanya dapat dibaca dengan autentikasi dan otorisasi.

Menemukan layanan

Perangkat Bluetooth berada pada peran klien GATT dan perangkat Android berada pada peran server. Untuk menemukan AIS dan membaca level API Android, perangkat Bluetooth menggunakan prosedur profil GATT seperti penemuan layanan utama, penemuan karakteristik, dan prosedur pembacaan nilai karakteristik. Untuk mengetahui detail tentang prosedur ini, lihat spesifikasi profil GATT.

API level ditentukan oleh properti sistem ro.build.version.sdk. Jika layanan utama tidak dapat ditemukan, artinya properti sistem tidak ditentukan atau nilainya ditetapkan ke kosong, atau sistem operasi host bukan Android.

Validasi

Untuk memverifikasi bahwa AIS dapat ditemukan, jalankan pengujian manual dengan menyambungkan periferal Bluetooth dengan perangkat Android, lalu mencari UUID layanan AIS di layanan utama yang ditemukan.