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

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

ארכיטקטורה

החל מ-Android 13, מנהל המכשירים הווירטואליים ומנהל המכשירים הנלווים (CDM) הם אבני הבניין העיקריות לתמיכה בסטרימינג של אפליקציות ואינטראקציה עם מכשירים מחוברים מרחוק.

Virtual Device Manager

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

מנהל המכשירים הווירטואלי כולל ממשקי API שמאפשרים ליצור, לרשום ולנהל מכונות VirtualDevice.

מכונה של VirtualDevice היא שרת proxy למכשיר המחובר וליכולות שלו. מכונה של VirtualDevice מאפשרת למכשיר מחובר לקבל, להציג וליצור אינטראקציה עם סטרימינג נכנס של האפליקציה באמצעות הפעולות הבאות:

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

ניהול מכשיר מותאם

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

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

אינטראקציה בסטרימינג עם אפליקציה

איור 1. אינטראקציות בין המכשיר המקומי למכשיר המרוחק במהלך סטרימינג של אפליקציות

הטמעה של תפקיד הסטרימינג של האפליקציה הנלווית

יצרני ציוד מקורי יכולים להטמיע אפליקציה עם התפקיד COMPANION_DEVICE_APP_STREAMING כדי לאפשר חוויית שימוש עשירה ומאובטחת במכשירים שלהם במכשירים שונים.

כדי ליצור מכשיר וירטואלי שמאפשר להפעיל סטרימינג של אפליקציות, האפליקציה צריכה להיות בתפקיד COMPANION_DEVICE_APP_STREAMING. כשנותנים את התפקיד, האפליקציה מקבלת את ההרשאה CREATE_VIRTUAL_DEVICE, שמאפשרת לה ליצור מכשיר וירטואלי. בעלי התפקידים אמורים להטמיע סטרימינג של אפליקציות על ידי יצירת מכונה של VirtualDevice שתופעל כשרת proxy למכשיר מחובר. בכיתה VirtualDevice יש שיטות שמאפשרות לחלץ משטח מורכב של תצוגה וירטואלית, שמתאים לשידור בסטרימינג למכשיר אחר. בכיתה VirtualDevice יש גם ממשקי API להחדרת אירועי קלט שמתרחשים במכשיר מרוחק למכשיר המקומי, וכך אפליקציה שפועלת במכשיר מקומי נראית כאילו היא פועלת באופן מקורי במכשיר מרוחק.

כדי להטמיע את התפקיד 'סטרימינג של אפליקציה נלווית':

  1. יוצרים אפליקציה שמבקשת את ההרשאה REQUEST_COMPANION_PROFILE_APP_STREAMING במניפסט.

  2. מבקשים מהמשתמש להעניק לאפליקציה הרשאה לבצע סטרימינג של אפליקציות.

  3. יוצרים מכונת CDM AssociationRequest כדי לבקש תפקיד COMPANION_DEVICE_APP_STREAMING. האפליקציה מקבלת את ההרשאה CREATE_VIRTUAL_DEVICE כשמקצים את התפקיד.

  4. קוראים לפונקציה VirtualDeviceManager#create() כדי ליצור מכונה של VirtualDevice. באמצעות מכונה של VirtualDevice, האפליקציה יכולה ליצור ולנהל תצוגות וירטואליות ומקורות קלט וירטואליים.

  5. מפעילים את ה-intent בהמתנה של ההתראה במסך הווירטואלי ויוצרים הקלטת וידאו של המסך הזה.

  6. יוצרים חיבור למכשיר המחובר ומעבירים את המסך הווירטואלי למכשיר המחובר.

  7. הזרקת אירועי קלט מהמכשיר המחובר למכשיר המקומי דרך ממשקי ה-API של VirtualDevice.

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

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

האפליקציה אחראית להתחבר למכשיר המרוחק, לדווח על מצב הקישוריות ל-CDM ולאכוף את דרישות האבטחה כפי שמתואר ב-CDD.

הדרישות לבעלי התפקיד COMPANION_DEVICE_APP_STREAMING

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

יכולות של בעלי תפקידים ב-COMPANION_DEVICE_APP_STREAMING

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

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