ב-Android 13, התכונה 'סטרימינג של אפליקציות' מאפשרת לטלפונים להזרים את האפליקציות שלהם למכשירים מחוברים, ולמכשירים האלה לבצע פעולות באפליקציות. תפקיד חדש של COMPANION_DEVICE_APP_STREAMING מאפשר לאפליקציה ליצור ולנהל שרתי proxy למכשירים שמחוברים לרשת אחרת מחוברים, כדי להעביר אפליקציות בסטרימינג מהמכשיר המקומי למכשיר שמחובר לרשת אחרת. אפליקציה עם התפקיד COMPANION_DEVICE_APP_STREAMING יכולה לקבל הרשאות ליצירת מסך וירטואלי, להפעיל בו אפליקציה ואז להזרים סרטון של האפליקציה שהופעלה למכשיר אחר. האפליקציה שמחזיקה בתפקיד יכולה גם להזריק אירועי קלט ומיקרופון שהתקבלו ממכשיר שמחובר לרשת אחרת בחזרה למכשיר המקומי, כאילו המכשיר הזה היה מחובר כציוד היקפי.
ארכיטקטורה
החל מ-Android 13, הכלי החדש לניהול מכשירים וירטואליים והכלי לניהול מכשירים נלווים (CDM) הם אבני הבניין העיקריות לתמיכה בהזרמת אפליקציות ובאינטראקציה עם מכשירים מרוחקים ומקושרים.
Virtual Device Manager
התכונה "סטרימינג של אפליקציות" פועלת באמצעות מסכים וירטואליים. הכלי 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 להחדרת אירועי קלט שמתרחשים במכשיר שמחובר לרשת אחרת למכשיר המקומי. כך אפליקציה שפועלת במכשיר מקומי יכולה להופיע כאילו היא פועלת באופן מקורי במכשיר שמחובר לרשת אחרת.
כדי להטמיע את תפקיד הסטרימינג של האפליקציה הנלווית:
יוצרים אפליקציה שמבקשת את ההרשאה
REQUEST_COMPANION_PROFILE_APP_STREAMINGבמניפסט.הצגת בקשה למשתמש להעניק לאפליקציה הרשאות שניתנות לאפליקציה להפעיל סטרימינג של אפליקציות.
יוצרים מופע של CDM
AssociationRequestכדי לבקש תפקידCOMPANION_DEVICE_APP_STREAMING. האפליקציה מקבלת את ההרשאהCREATE_VIRTUAL_DEVICEכשמקצים את התפקיד.מפעילים את
VirtualDeviceManager#create()כדי ליצור מופע שלVirtualDevice. במכונה שלVirtualDevice, האפליקציה יכולה ליצור ולנהל תצוגות וירטואליות וקלט וירטואלי.מפעילים את intent בהמתנה של ההתראה בתצוגה הווירטואלית ויוצרים צילום וידאו של התצוגה הזו.
יוצרים חיבור למכשיר המחובר ומעבירים את התצוגה הווירטואלית בסטרימינג למכשיר המחובר.
הזרקת אירועי קלט מהמכשיר המחובר בחזרה למכשיר המקומי דרך ממשקי ה-API של
VirtualDevice.כשהמשתמש סוגר את אפליקציית הסטרימינג במכשיר שמחובר לרשת אחרת, הסטרימינג מסתיים ומופסקת הפעולה של מופע
VirtualDevice. בשלב הזה, אפליקציית הסטרימינג ששידרה קודם פועלת ברקע במכשיר המקומי והחיבור נסגר.אם צריך, מחכים לאותות נוספים מהמכשיר המחובר כדי להפעיל מחדש את הזרמת האפליקציה.
האפליקציה אחראית להתחבר למכשיר שמחובר לרשת אחרת, לדווח על מצב הקישוריות ל-CDM ולאכוף את דרישות האבטחה כפי שמתואר ב-CDD.
הדרישות למחזיקי התפקיד COMPANION_DEVICE_APP_STREAMING
ה-CDM מקצה את התפקיד COMPANION_DEVICE_APP_STREAMING כשהמשתמש משייך אפליקציית סטרימינג למכשיר. התפקיד הזה משויך לפרופיל מכשיר, כך שיש שליטה מסוימת על האפליקציות שאפשר להוסיף לחנות Play שתואמות לפרופיל הזה. ברשימת התפקידים ב-Android מפורטות הדרישות לתפקיד COMPANION_DEVICE_APP_STREAMING. למידע נוסף, אפשר לפנות לאיש הקשר ב-Google.
יכולות של בעלי תפקיד COMPANION_DEVICE_APP_STREAMING
כדי לבצע סטרימינג של אפליקציות, התפקיד COMPANION_DEVICE_APP_STREAMING מניח שלאפליקציה של בעל התפקיד יש את היכולות וההתנהגויות הבאות:
- ליצור ולנהל חיבורים למכשירים אחרים.
- כדי ליצור ולנהל מסכים וירטואליים מהימנים, כולל מסכים לא נעולים, צריך לפעול לפי השלבים הבאים:
- מתחילים פעילויות במסך הווירטואלי.
- החדרת אירועים שמתרחשים באפליקציית סטרימינג במכשיר מחובר בחזרה למכשיר המקומי, למשל הפעלת אירוע מגע בטאבלט באותן קואורדינטות בטלפון.
- לתעד נתוני אודיו מאפליקציית הסטרימינג.
- להחליף את זרם המיקרופון של המכשיר המקומי בזרם המיקרופון של מכשיר מחובר בזמן שאפליקציית סטרימינג משתמשת במיקרופון.
- להחליף את סטרימינג מהמצלמה במכשיר המקומי בסטרימינג מהמצלמה במכשיר מחובר בזמן שאפליקציית סטרימינג משתמשת במצלמה.
- לנהל את ההתראות ולהזרים אותן מהמכשיר המקומי למכשיר המחובר, ולבצע פעולות בהתראות.
- להעביר מטא-נתונים מהמכשיר המקומי, כמו רשימת האפליקציות שזמינות במכשיר המקומי, למכשיר המחובר.
- בקשה לאימות המכשיר.