شناسایی سیستم عامل اندروید

با شروع اندروید 16، چارچوب اندروید شامل یک سرویس ویژگی عمومی (GATT) به نام سرویس اطلاعات اندروید (AIS) است که به دستگاه‌های بلوتوث اجازه می‌دهد سطح API Android را به عنوان مشخصه GATT این سرویس بخوانند. این سرویس به سازندگان دستگاه‌های بلوتوث اجازه می‌دهد بدانند که آیا یک دستگاه جانبی بلوتوث با یک دستگاه مرکزی که دارای سیستم عامل Android است جفت می‌شود یا خیر، و منطق تخصصی را بر اساس سطح API مدیریت کنند.

سرویس اطلاعات اندروید (AIS)

AIS یک سرویس استاندارد گات است و تنها یک نمونه از AIS می تواند روی یک دستگاه وجود داشته باشد. UUID سرویس اولیه e73e0001-ef1b-4e74-8291-2e4f3164f3b5 است. مشخصه سطح API Android (UUID: e73e0002-ef1b-4e74-8291-2e4f3164f3b5 ) حاوی سطح API دستگاه به عنوان یک عدد صحیح 32 بیتی بدون علامت به شکل باینری (کوچک edian) است. مقدار مشخصه سطح API Android 4 اکتت طول دارد (به عنوان مثال، سطح API 36 0x24_00_00_00 است). وقتی دستگاه قابل شناسایی باشد، مقدار مشخصه سطح Android API بدون احراز هویت یا مجوز قابل خواندن است. وقتی دستگاه قابل شناسایی نباشد، مشخصه سطح API Android فقط با احراز هویت و مجوز قابل خواندن است.

سرویس را کشف کنید

دستگاه بلوتوث در نقش سرویس گیرنده GATT و دستگاه Android در نقش سرور قرار دارد. برای کشف AIS و خواندن سطح API Android، دستگاه‌های بلوتوث از روش‌های نمایه GATT مانند کشف سرویس اولیه ، کشف مشخصه و روش‌های خواندن ارزش مشخصه استفاده می‌کنند. برای جزئیات بیشتر در مورد این رویه ها، مشخصات نمایه گات را ببینید.

سطح API توسط ویژگی سیستم ro.build.version.sdk تعریف می شود. اگر سرویس اولیه قابل کشف نباشد، به این معنی است که ویژگی سیستم تعریف نشده است یا مقدار خالی تنظیم شده است، یا سیستم عامل میزبان اندروید نیست.

اعتبار سنجی

برای تأیید اینکه آیا AIS قابل کشف است، با جفت کردن یک دستگاه جانبی بلوتوث با یک دستگاه Android، یک آزمایش دستی را اجرا کنید و سپس UUID سرویس AIS را در سرویس‌های اصلی کشف‌شده جستجو کنید.