ממשקי API של Android 2.3.4

רמת ה-API: 10

Android 2.3.4 (GINGERBREAD_MR1) היא גרסת תחזוקה שמוסיפה מספר תיקוני באגים ותיקונים לפלטפורמת Android 2.3, ללא שינויים בממשק ה-API החל מ-Android 2.3.3. בנוסף, ב-Android 2.3.4 יש תמיכה ב-Open Accessory API במכשירים ניידים, באמצעות ה-Open Accessory Library האופציונלי.

למפתחים, פלטפורמת Android 2.3.4 זמינה כרכיב שניתן להורדה ב-Android SDK. הפלטפורמה שניתנת להורדה כוללת ספריית Android ותמונת מערכת, וגם ערכת סקינים של אמולטור ועוד. כדי להתחיל לפתח או לבצע בדיקות מול Android 2.3.4, צריך להשתמש ב-Android SDK Manager כדי להוריד את הפלטפורמה ל-SDK.

סקירה כללית על API

ב-Android 2.3.4 מוצג אותו ממשק API למסגרת לאפליקציות כמו ב-Android 2.3.3 (רמת API ‏10). סיכום של ה-API זמין במאמר הערות לגרסה 2.3.3 של Android.

פתיחה של ספריית האביזרים

Open Accessory היא יכולת חדשה לשילוב של ציוד היקפי מחובר עם אפליקציות שפועלות בפלטפורמה. היכולת מבוססת על סטאק USB (Universal Series Bus) שמובנה בפלטפורמה ועל API שחשוף לאפליקציות. ציוד היקפי שמחובר למכשירים מבוססי Android כאביזרים מתחברים כמארחי USB.

Open Accessory הושק ב-Android 3.1 (רמת API 12), אבל הוא זמין למכשירים עם Android 2.3.4 באמצעות ספרייה חיצונית אופציונלית, Open Accessory Library. הספרייה חושפת ממשק API של מסגרת שמאפשר לאפליקציות לזהות מגוון סוגים של מכשירים שמחוברים באמצעות USB, לתקשר איתם ולנהל אותם. הוא גם מספק את הטמעת ה-API בחלקים של פלטפורמת Android שלא נחשפים ישירות לאפליקציות ב-Android 2.3.4.

הספרייה Open Accessory Library היא אופציונלית בכל מכשיר. יצרני המכשירים יכולים לבחור אם לכלול את ספריית האבזרים הפתוחה במוצרים שלהם או להחריג אותה. הספרייה תואמת ל-Android 3.1, כך שאפליקציות שפותחו עבור Android 2.3.4 יפעלו כראוי במכשירים עם Android 3.1, אם המכשירים האלה תומכים באביזרי USB.

ממשק ה-API שסופק על ידי ספריית Open Accessory מבוסס על ממשק ה-API של Open Accessory שסופק ב-Android 3.1. ברוב האזורים אפשר להשתמש באותן שיטות ובאותם ממשקי API. עם זאת, הפיתוח עבור Open Accessory Library ב-Android 2.3.4 שונה מ-API ל-USB הסטנדרטי בדרכים הבאות:

  • קבלת אובייקט UsbManager — כדי לקבל אובייקט UsbManager כשמשתמשים בספריית התוספים, צריך להשתמש בשיטת העזרה getInstance() במקום ב-getSystemService(). לדוגמה:

    Kotlin

    val manager = UsbManager.getInstance(this)
    

    Java

    UsbManager manager = UsbManager.getInstance(this);
    
  • אחזור של UsbAccessory מכוונה מסוננת – כשמסננים מכשיר או אביזר מחוברים באמצעות מסנן כוונה, אובייקט UsbAccessory נכלל בכוונה שמועברת לאפליקציה. אם אתם משתמשים בספריית התוסף, תוכלו לקבל את האובייקט UsbAccessory באופן הבא:

    Kotlin

    val accessory = UsbManager.getAccessory(intent)
    

    Java

    UsbAccessory accessory = UsbManager.getAccessory(intent)
    
  • אין תמיכה במארח USB – ב-Android 2.3.4 ובספריית Open Accessory Library אין תמיכה במצב מארח USB (לדוגמה, דרך UsbDevice), אבל במצב מארח USB יש תמיכה ב-Android 3.1. מכשיר מבוסס Android עם Android 2.3.4 לא יכול לתפקד כמארח USB. הספרייה מאפשרת למכשיר Android לפעול כציוד היקפי בלבד, והאביזר המחובר מתפקד כמארח USB (דרך UsbAccessory).

כדי לפתח אפליקציות באמצעות ספריית Open Accessory, צריך:

  • הגרסה האחרונה של כלי Android SDK
  • את הגרסה האחרונה של תוסף Google APIs, שכולל את הספרייה עצמה (לקישור)
  • מכשיר חומרה אמיתי שפועל בו Android 2.3.4 (או Android 3.1) עם תמיכה באביזרי USB, לבדיקת זמן ריצה מול מכשירים מחוברים

לדיון מלא על פיתוח אפליקציות שיש להן אינטראקציה עם אביזרי USB, כדאי לעיין במסמכי התיעוד למפתחים שקשורים אליהן.

בנוסף, מפתחים יכולים לבקש סינון ב-Google Play, כך שהאפליקציות שלהם לא יהיו זמינות למשתמשים שהמכשירים שלהם לא תומכים באבזרים המתאימים. כדי לבקש סינון, מוסיפים את הרכיב הבא למניפסט של האפליקציה:

<uses-feature
  android:name="android.hardware.usb.accessory"
  android:required="true">

רמת ה-API

פלטפורמת Android 2.3.4 לא מגדילה את רמת ה-API — היא משתמשת באותה רמת API כמו Android 2.3.3, רמת API 10.

כדי להשתמש בממשקי API שהושקו ברמת API 10 באפליקציה שלכם, צריך להדר את האפליקציה בספריית Android שסופקה בגרסה האחרונה של תוסף Google APIs, שכוללת גם את Open Accessory Library.

בהתאם לצרכים שלכם ייתכן שתצטרכו להוסיף גם את המאפיין android:minSdkVersion="10" לרכיב <uses-sdk> במניפסט של האפליקציה. אם האפליקציה שלכם מיועדת לפעול רק ב-Android מגרסה 2.3.3 ואילך, ההצהרה על המאפיין תמנע את ההתקנה של האפליקציה בגרסאות קודמות של הפלטפורמה.

מידע נוסף זמין במאמר מהי רמת API?