החל מ-27 במרץ 2025, מומלץ להשתמש ב-android-latest-release
במקום ב-aosp-main
כדי ליצור תרומות ל-AOSP. מידע נוסף זמין במאמר שינויים ב-AOSP.
זיהוי של Android OS
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
keywords: AiAssisted,release16,androidconnectivity,bluetooth,category:AndroidConnectivity,docType:Guide
החל מ-Android 14, מסגרת Android כוללת שירות Generic Attribute (GATT) שנקרא Android information service (AIS), שמאפשר למכשירי Bluetooth לקרוא את רמת Android API כמאפיין GATT של השירות.
השירות הזה מאפשר ליצרני מכשירי Bluetooth לדעת אם מכשיר Bluetooth היקפי משויך למכשיר מרכזי שמריץ את מערכת ההפעלה Android, ולנהל לוגיקה מיוחדת על סמך רמת ה-API.
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 בלי אימות או הרשאה.
כשהמכשיר לא ניתן לגילוי, מאפיין רמת ה-API של Android ניתן לקריאה רק עם אימות והרשאה.
גילוי השירות
מכשיר ה-Bluetooth נמצא בתפקיד של לקוח GATT ומכשיר Android נמצא בתפקיד של שרת. כדי לגלות את AIS ולקרוא את רמת ה-API של Android, מכשירי Bluetooth משתמשים בהליכים של פרופיל GATT, כמו גילוי שירות ראשי, גילוי מאפיינים וקריאת ערך מאפיין. פרטים על התהליכים האלה מופיעים במפרט של פרופיל GATT.
רמת ה-API מוגדרת על ידי מאפיין המערכת ro.build.version.sdk
. אם אי אפשר לגלות את השירות הראשי, זה אומר שמאפיין המערכת לא מוגדר או שהערך שלו ריק, או שמערכת ההפעלה של המארח היא לא Android.
אימות
כדי לוודא שאפשר לגלות את AIS, מריצים בדיקה ידנית על ידי התאמה של ציוד היקפי של Bluetooth למכשיר עם Android, ואז מחפשים את ה-UUID של שירות AIS בשירותים הראשיים שמתגלים.
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-08-22 (שעון UTC).
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2025-08-22 (שעון UTC)."],[],[],null,["# Android OS identification\n\nkeywords: AiAssisted,release16,androidconnectivity,bluetooth,category:AndroidConnectivity,docType:Guide\n\nStarting in Android 14, the Android framework includes a Generic Attribute\n(GATT) service called Android information service (AIS), which lets Bluetooth\ndevices read the Android API level as a GATT characteristic of the service.\nThis service lets Bluetooth device manufacturers know whether a Bluetooth\nperipheral is pairing with a central device that is running the Android OS,\nand manage specialized logic based on the API level.\n\nAndroid information service (AIS)\n---------------------------------\n\nAIS is a standard GATT service and there can be only one instance of AIS on\na device. The primary service UUID is `e73e0001-ef1b-4e74-8291-2e4f3164f3b5`.\nThe Android API level characteristic (UUID:\n`e73e0002-ef1b-4e74-8291-2e4f3164f3b5`) contains the API level of the device as\nan unsigned 32-bit integer in binary form (little-endian). The value of the\nAndroid API level characteristic is 4 octets in length (for example, API\nlevel 36 is `0x24_00_00_00`). When the device is discoverable, the Android API\nlevel characteristic value is readable without authentication or authorization.\nWhen the device isn't discoverable, the Android API level characteristic is\nreadable only with authentication and authorization.\n\nDiscover the service\n--------------------\n\nThe Bluetooth device is on the GATT client role and the Android-powered device\nis on the server role. To discover AIS and read the Android API level, Bluetooth\ndevices use GATT profile procedures such as the *primary service discovery* ,\n*characteristic discovery* , and *characteristic value read* procedures. For\ndetails on these procedures, see the [GATT profile specification](https://www.bluetooth.com/wp-content/uploads/Files/Specification/HTML/Core-54/out/en/host/generic-attribute-profile--gatt-.html).\n\nThe API level is defined by the `ro.build.version.sdk` system property. If the\nprimary service can't be discovered, it means that the system property isn't\ndefined or the value is set to empty, or the host operation system isn't\nAndroid.\n\nValidation\n----------\n\nTo verify that AIS can be discovered, run a manual test by pairing a Bluetooth\nperipheral with an Android-powered device, and then looking up the AIS service\nUUID in the discovered primary services."]]