ב-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 להחדרת אירועי קלט שמתרחשים במכשיר מרוחק למכשיר המקומי, וכך אפליקציה שפועלת במכשיר מקומי נראית כאילו היא פועלת באופן מקורי במכשיר מרוחק.
כדי להטמיע את התפקיד 'סטרימינג של אפליקציה נלווית':
יוצרים אפליקציה שמבקשת את ההרשאה
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 שתואמות לפרופיל הזה. רשימת הדרישות לתפקיד COMPANION_DEVICE_APP_STREAMING
מפורטת במאמר תפקידים ב-Android. למידע נוסף, תוכלו לפנות לנציג שלכם ב-Google.
יכולות של בעלי תפקידים ב-COMPANION_DEVICE_APP_STREAMING
כדי לבצע סטרימינג של אפליקציה, התפקיד COMPANION_DEVICE_APP_STREAMING
מניח שלאפליקציה של בעל התפקיד יש את היכולות וההתנהגויות הבאות:
- ליצור ולנהל חיבורים למכשירים אחרים.
- כך יוצרים ומנהלים מסכים וירטואליים מהימנים, כולל מסכים לא נעולים:
- מתחילים פעילויות במסך הווירטואלי.
- הזרקת אירועים שמתרחשים באפליקציה שמשודרת במכשיר מחובר בחזרה למכשיר המקומי, למשל הפעלת אירוע מגע בטאבלט באותן קואורדינטות בטלפון.
- איך מתעדים נתוני אודיו מהאפליקציה שמשודרת.
- החלפת הסטרימינג של המיקרופון במכשיר המקומי בסטרימינג של המיקרופון במכשיר המחובר, בזמן שאפליקציה שמשודרת בסטרים משתמשת במיקרופון.
- להחליף את השידור מהמצלמה של המכשיר המקומי בשידור מהמצלמה של מכשיר מחובר, בזמן שאפליקציה שמשודרת בסטרימינג משתמשת במצלמה.
- אפשר לנהל את ההתראות, ולשדר אותן מהמכשיר המקומי למכשיר המחובר, ולבצע פעולות בתגובה להתראות.
- להעביר מטא-נתונים מהמכשיר המקומי, כמו רשימת האפליקציות הזמינות במכשיר המקומי, למכשיר המחובר.
- מבקשים אימות המכשיר.