הרחבת אפליקציית המדיה ל-Android למכוניות

מעבירים את האפליקציה לכלי רכב שמערכת ההפעלה שלהם היא Android Auto או Android Automotive OS. להשתמש בארכיטקטורה אחת של אפליקציות שמתאימה לשני המקרים, כדי שכל משתמש יוכל ליהנות אפליקציה.

מה זה Android למכוניות?

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

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

Android Auto

Android Auto מספק חוויית שימוש באפליקציה שמותאמת לנהגים למשתמשים טלפון Android עם אפליקציית Android Auto ומכונית תואמת או אפטר מרקט במערכת סטריאו. הם יוכלו להשתמש באפליקציה שלך ישירות במסך הרכב שלהם באמצעות שמחברים את הטלפון שלהם. מפעילים את Android Auto כדי להתחבר לאפליקציה בטלפון באמצעות יצירת שירותים שמערכת Android Auto משתמשת בהם כדי להציג תצוגה מותאמת לנהגים לנהג.

Android Automotive OS

Android Automotive OS היא מערכת מידע ובידור מבוססת-Android שמובנית כלי רכב. מערכת הרכב היא מכשיר עצמאי מבוסס Android ש מותאם לנהיגה. ב-Android Automotive OS, המשתמשים מתקינים את האפליקציה ישירות לרכב במקום לטלפונים.

קטגוריות נתמכות של אפליקציות

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

אפליקציות מדיה נוצרות באמצעות MediaLibraryService ו-MediaSession. ב-Android ב-Automotive OS, אפשר גם ליצור מסכי כניסה והגדרות (לשימוש בזמן בהמתנה) באמצעות 'תצוגות' או 'כתיבה'.

אפליקציות וידאו מאפשרות למשתמשים לצפות בסרטונים בסטרימינג כשהמכונית בחנייה. הליבה מטרתן של האפליקציות האלה היא להציג וידאו בסטרימינג. האפליקציות האלה פותחו באמצעות 'תצוגות' או 'כתיבה'. מידע נוסף זמין במאמר הבא: יצירת אפליקציות להפעלת סרטונים עבור Android Automotive OS מידע נוסף זמין ב- בניית אפליקציות של סרטונים עבור Android Automotive OS.

פיתוח אפליקציות להפעלת אודיו במכוניות

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

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

רכיבי הפעלה

Media3 כולל מספר רכיבים עיקריים לתרחישי הפעלה. הכיתות שמהם מורכב הרכיבים האלו המוכרים לכם, אם עבדתם עם של ספריות המדיה הקודמות של Android.

התרשים הבא מדגים איך הרכיבים האלה מתכנסים אפליקציה רגילה.

הרכיבים השונים של אפליקציית מדיה שמשתמשת ב-Media3 Connect
  ביחד בכמה דרכים פשוטות, בזכות השיתוף שלהם בממשקים
   למחלקות השונות.
איור 1: רכיבים של אפליקציית מדיה

לקבלת מידע נוסף, ראו רכיבי הפעלה.

יישום של MediaLibraryService ו-MediaLibrarySession

MediaLibraryService מספק API סטנדרטי להצגה ולגישה לספריית המדיה. צריך לעשות זאת כשמוסיפים תמיכה ב-Android Auto או ב-Android Automotive מערכת ההפעלה לאפליקציית המדיה שלך, כי הפלטפורמות האלה מספקות ממשק משתמש משלהן ובטוח לנהג עבור ספריית המדיה שלך. לקבלת מידע נוסף על הטמעה ושימוש MediaLibraryService, ראו מילוי תוכן באמצעות MediaLibraryService.

כדי להשתמש בפקדי ההפעלה, יש להשתמש בסשן מדיה. ה-API של MediaSession מספק דרך אוניברסלית לאינטראקציה עם נגן אודיו או וידאו. Jetpack Media3 הספרייה כוללת MediaLibrarySession, שמרחיב את MediaSession להוספה ממשקי API לדפדוף בתוכן.

חיבור של סשן מדיה לנגן מאפשר לאפליקציה לפרסם הפעלת מדיה באופן חיצוני ולקבל פקודות הפעלה מ מקורות חיצוניים כמו Android Auto , Android Automotive OS או Google עוזר/ת. מידע נוסף זמין במאמר הבא: שליטה בהפעלה ופרסום באמצעות MediaSession ו-Use a MediaLibrarySession.

לכל הפחות, סשן המדיה שלך צריך לכלול הצהרה על תמיכה בנגן הבא פקודות:

המדריך הפעלת רכיבי ה-UI להפעלה מתארת את הדרכים שבהן אפשר להתאים אישית את רכיבי ה-UI להפעלה במכוניות.

כש-Android Auto או Android Automotive OS מתחברים לאפליקציה, הם מבקשים של ספריית התוכן להצגה, שמפעילה את הקריאה החוזרת של onGetLibraryRoot() . אפשר להחזיר במהירות פריט מדיה בסיסי כדי לאפשר גישה לספרייה. מתבצעת קריאה לשיטת הקריאה החוזרת (callback) של onGetChildren() כאשר Android Auto או מערכת Android Automotive OS מנסה לעיין ברמות עמוקות יותר של התוכן לספרייה.

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

הצהרה על תמיכה ב-Android Auto

צריך להשתמש ברשומת המניפסט הבאה כדי להצהיר שהאפליקציה לטלפון תומכת Android Auto:

<application>
    ...
    <meta-data android:name="com.google.android.gms.car.application"
        android:resource="@xml/automotive_app_desc"/>
    ...
</application>

ערך המניפסט הזה מתייחס לקובץ XML המצהיר על סוג כלי הרכב היכולות הנתמכות באפליקציה. כדי לציין שיש לך אפליקציית מדיה, עליך להוסיף קובץ XML בשם automotive_app_desc.xml לספרייה res/xml/ פרויקט. הקובץ צריך לכלול את התוכן הבא:

<automotiveApp>
    <uses name="media"/>
</automotiveApp>

הצהרת תמיכה ב-Android Automotive OS

צריך ליצור מודול של כלי רכב, כי חלק מהלוגיקה באפליקציה לא משותף עם אפליקציה לכלי רכב. רכיבים מסוימים של Android Automotive OS, כמו כמניפסט, יש דרישות ספציפיות לפלטפורמה. ליצור מודול שיכול לשמור את הקוד של הרכיבים האלה בנפרד מקוד אחר בפרויקט, כמו הקוד המשמש את האפליקציה שלך לנייד.

כדי להוסיף לפרויקט מודול של כלי רכב:

  1. ב-Android Studio, לוחצים על קובץ > חדש > מודול חדש.
  2. בוחרים באפשרות מודול לרכב ולוחצים על הבא.
  3. מזינים שם אפליקציה/ספרייה. זה השם שהמשתמשים רואים לאפליקציה שלך ב-Android Automotive OS.
  4. מזינים את שם המודול.
  5. משנים את שם החבילה בהתאם לאפליקציה.
  6. בוחרים באפשרות API 28: Android 9.0 (Pie) בתור Minimum SDK, ולוחצים על הבא.

    כל המכוניות שתומכות ב-Android Automotive OS פועלות ב-Android 9 (רמת API 28) או לכן בחירה בערך הזה תטרגט את רכבים תואמים.

  7. בוחרים באפשרות ללא פעילות ואז לוחצים על סיום.

לאחר יצירת המודול ב-Android Studio, פותחים את AndroidManifest.xml ב- מודול הרכב החדש:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.media">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme" />

    <uses-feature
        android:name="android.hardware.type.automotive"
        android:required="true" />

</manifest>

application מכיל מידע סטנדרטי על האפליקציה, וגם uses-feature רכיב שמצהיר על תמיכה ב-Android Automotive OS. שימו לב שיש אינן פעילויות מוצהרות במניפסט.

אם מטמיעים הגדרות או פעילויות כניסה, צריך להוסיף אותם כאן. המערכת מפעילה את הפעילויות האלה באמצעות כוונות, ואלו הפעילויות היחידות שאתם מצהירים עליהן במניפסט של אפליקציית Android Automotive OS.

אחרי שמוסיפים הגדרות או פעילויות כניסה, משלימים את קובץ המניפסט עד הגדרת המאפיין android:appCategory="audio" ברכיב application ומוסיפים את רכיבי uses-feature הבאים:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.media">

    <application
        android:allowBackup="true"
        android:appCategory="audio"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme" />

    <uses-feature
        android:name="android.hardware.type.automotive"
        android:required="true" />

    <uses-feature
        android:name="android.hardware.wifi"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.screen.portrait"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.screen.landscape"
        android:required="false" />

</manifest>

הגדרה מפורשת של התכונות האלה ל-required="false", מבטיחה האפליקציה שלך לא מתנגשת עם תכונות החומרה הזמינות ב-Automotive OS מכשירים.

צריך להשתמש ברשומת המניפסט הבאה כדי להצהיר שהאפליקציה שלך תומכת ב-Android Automotive OS:

<application>
    ...
    <meta-data android:name="com.android.automotive"
        android:resource="@xml/automotive_app_desc"/>
    ...
</application>

ערך המניפסט הזה מתייחס לקובץ XML המצהיר על שם כלי הרכב ביכולות שהאפליקציה שלך תומכת בהן.

כדי לציין שיש לכם אפליקציית מדיה, צריך להוסיף קובץ XML בשם automotive_app_desc.xml לספרייה res/xml/ בפרויקט. כלול את התוכן הבא בקובץ הזה:

<automotiveApp>
    <uses name="media"/>
</automotiveApp>

מסנני Intent

מערכת Android Automotive OS משתמשת בכוונות מפורשות כדי להפעיל פעילויות במדיה שלך אפליקציה. אין לכלול פעילויות שכוללות CATEGORY_LAUNCHER או ACTION_MAIN Intent המסננים בקובץ המניפסט.

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

<activity android:name=".MyActivity">
<intent-filter>
<!-- You can't use either of these intents for Android Automotive OS -->
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<!--
In their place, you can include other intent filters for any activities
that your app needs for Android Automotive OS, such as settings or
sign-in activities.
-->
</intent-filter>
</activity>

שלבים נוספים

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

איך מפתחים אפליקציות להפעלת סרטונים ב-Android Automotive OS

אפליקציות וידאו מסווגות בנפרד מאפליקציות מדיה במכוניות, לכן צריך להיות מודעים לדרישות ספציפיות עבור אפליקציות וידאו, כפי שמתואר ליצור אפליקציות בהמתנה עבור Android Automotive OS, וגם בניית אפליקציות של סרטונים ל-Android Automotive OS. תצטרכו לפעול לפי ההוראות הבאות.

סימון האפליקציה כאפליקציית וידאו

כדי לציין שהאפליקציה שלך תומכת בווידאו, צריך להוסיף קובץ XML בשם automotive_app_desc.xml לספרייה res/xml/ בפרויקט. כאן צריך לכלול את התוכן הבא:

<automotiveApp>
    <uses name="video"/>
</automotiveApp>

לאחר מכן, ברכיב application של המניפסט, צריך להוסיף את הפרטים הבאים הרכיב meta-data שמפנה לקובץ ה-XML:

<meta-data android:name="com.android.automotive"
    android:resource="@xml/automotive_app_desc"/>