תפקידים ב-Android

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

ברשימה הבאה מפורטים התפקידים הזמינים והדרישות המתאימות להם.

תפקיד הדרישות
ASSISTANT לפחות אחד מהערכים האלה:
  • באפליקציה יש פעילות שמבצעת פעולות סיוע, על סמך המידע על ההקשר של המשתמש כשביקש את הסיוע, (למשל, שם החבילה של האפליקציה בחזית הנוכחית ומידע ההקשרי שלה).
  • לאפליקציה יש שירות אינטראקציה קולית שפועל כל הזמן, ומוגבל על ידי ההרשאה android.permission.BIND_VOICE_INTERACTION והוא יכול לבצע זיהוי קולי ולארח אינטראקציות קוליות פעילות. בנוסף, האפליקציה מציגה סימון מפורש שמציין שהשירות יכול לטפל בפעולת הסיוע.
דפדפן כל החישובים האלה:
  • באפליקציה יש פעילות שאפליקציות יכולות להפעיל באמצעות בקשות מרומזות של Intent, שמציגה דף אינטרנט שתואם לכתובת http://.
  • האפליקציה צריכה לטפל בניווט בין קישורים. כלומר, אם משתמש צופה בדף אינטרנט ולוחץ על כתובת http:// בטקסט, לאפליקציה צריכה להיות אפשרות להציג את התוכן שתואם לקישור שנבחר, ללא התערבות נוספת של המשתמש.
  • האפליקציה צריכה להיות מסוגלת לספק לדפי אינטרנט את נתוני המיקום הגיאוגרפי הנוכחי של המכשיר כשנשלחת בקשה והמשתמש מאשר את הבקשה.
חייגן כל החישובים האלה:
  • באפליקציה יש פעילות שניתנת להפעלה באמצעות בקשות מרומזות של Intent, והיא מספקת את ממשק המשתמש של השיחה בזמן שהמכשיר נמצא בשיחה.
  • האפליקציה יכולה לטפל בכוונות שיחה נכנסות, להציג למשתמש את המידע שקשור לשיחה (למשל, מספר הטלפון של המתקשר) ולאפשר למשתמש לענות לשיחה או לדחות אותה.
  • האפליקציה מאפשרת למשתמש ליזום שיחות ולראות את היסטוריית השיחות במכשיר.
SMS כל החישובים האלה:
  • האפליקציה עומדת בכל הדרישות של אפליקציות SMS.
  • באפליקציה יש פעילות שניתנת להפעלה באמצעות בקשות מרומזות של Intent, שיכולות לשלוח הודעה למספר טלפון.
  • לאפליקציה יש שירות שמוגבל על ידי ההרשאה android.permission.SEND_RESPOND_VIA_MESSAGE וניתן להפעיל אותו באמצעות כוונות מרומזות. השירות הזה מאפשר להעביר הודעות שהתקבלו מאפליקציית 'טלפון' כשהמשתמש בוחר להשיב להודעה במהלך שיחה נכנסת. האפליקציה יכולה להעביר הודעות באמצעות מערכת העברת הודעות משלה.
  • לאפליקציה יש שני מקלטי שידורים, אחד שמוגבל על ידי ההרשאה android.permission.BROADCAST_SMS והשני מוגבל להרשאה android.permission.BROADCAST_WAP_PUSH, שיכולים להאזין להודעות SMS ו-MMS רגילות שנשלחות למכשיר, בהתאמה. לאחר מכן, האפליקציה אחראית לכתוב את ההודעות לספק ה-SMS וליידע את המשתמשים.
מצב חירום כל החישובים האלה:
  • האפליקציה היא אפליקציית מערכת.
  • יש באפליקציה פעילות שמציגה את המידע של המשתמש למקרה חירום. כל אחד יוכל לנווט למסך הזה באמצעות לחצן החירום בפעילות של חייגן החירום.
דף הבית יש באפליקציה פעילות שיכולה להפעיל את מסך הבית כשהמשתמש לוחץ על הלחצן הראשי. במסך הבית צריכים להופיע סמלי אפליקציות, ווידג'טים ותמיכה בניווט על סמך לחצנים או תנועות (לדוגמה, החלקה למעלה כדי לראות את כל האפליקציות).
CALL_REDIRECTION לאפליקציה יש שירות שמוגבל על ידי ההרשאה android.permission.BIND_CALL_REDIRECTION_SERVICE, שמסגרת Telecom יכולה לקשר אליו. השירות מקבל את מספר הטלפון היוצא מ-Telecom framework ומבצע אחת מהפעולות הבאות:
  • אישור לביצוע השיחה.
  • צריך לשנות את המספר שיוצא כדי לנתב דרך מספר proxy.
  • לבטל את השיחה.
CALL_SCREENING לאפליקציה יש שירות שמוגבל על ידי ההרשאה android.permission.BIND_SCREENING_SERVICE, שמבצע שתי פונקציות:
  1. חסימת/סינון שיחות: השירות יכול לבחור אילו שיחות יישלחו לאפליקציית החייגן בטלפון (ועשויות לצלצל, בהינתן ערך DND/עוצמת קול), ואילו שיחות יישלחו באופן שקט לדואר הקולי.
  2. זיהוי שיחות: השירות יכול לזהות ולהציג מידע על שיחה באמצעות ממשק משתמש.
SYSTEM_GALLERY כל החישובים האלה:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי יכולים להקצות את התפקיד הזה לאפליקציה.
  • האפליקציה מספקת ממשק משתמש שבו המשתמשים יכולים לאחסן, לארגן ולהציג את הסרטונים והתמונות שלהם.
SYSTEM_autoMOTIVE_cluster כל החישובים האלה:
  • האפליקציה היא אפליקציית מערכת ב-Automotive.
  • רק יצרני ציוד מקורי יכולים להקצות את התפקיד הזה לאפליקציה.
  • האפליקציה מספקת פונקציונליות לתצוגה של אשכול כלי רכב (בדרך כלל ליד ההגה) כדי שהמשתמשים יוכלו לענות לשיחות טלפון ולגשת לרשימות אנשי קשר ויומני שיחות.
COMPANION_DEVICE_Watch האפליקציה יכולה לשלוח בקשות לשייך למכשיר שעון ולנהל אותו (באמצעות ה-API שסופק על ידי הכיתה CompanionDeviceManager). לאחר חיבור השעון והאפליקציה באמצעות ממשק המשתמש שסופק על ידי האפליקציה, המשתמשים יוכלו לנהל את השעון שלהם מהאפליקציה, כולל סנכרון של אנשי הקשר והיומן, וניהול ההתראות ושיחות הטלפון.
SYSTEM_autoMOTIVE_PROJECTION כל החישובים האלה:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי יכולים להקצות את התפקיד הזה לאפליקציה.
  • האפליקציה מאפשרת להקרין את מסך הטלפון על מסך הרכב. היא מאפשרת לנהגים לגשת לאפליקציות בטלפונים עם Android ולשלוט בהן, כולל מוזיקה, ניווט, שיחות טלפון וחיפוש Google, באמצעות מנגנוני קלט ברכב, כולל מגע, פקדים באמצעות ההגהה ופקודות קוליות.
SYSTEM_SHELL כל החישובים האלה:
  • האפליקציה היא אפליקציית מערכת שמקבלת את ה-UID Process.SHELL_UID.
  • רק יצרני ציוד מקורי יכולים להקצות את התפקיד הזה לאפליקציה.
  • האפליקציה מספקת ממשק שפועל ברמת שורת הפקודה כך שהמשתמשים יכולים ליצור אינטראקציה עם מערכת ההפעלה של Android. לדוגמה, הצגת התוכן של תיקייה או הפעלת אפליקציות. אפשר להריץ פקודות מעטפת באופן פרוגרמטי על ידי אפליקציות (כאשר הוענקו ההרשאות הדרושות) או דרך כלי ה-ADB.
SYSTEM_Contacts (אנשי קשר) כל החישובים האלה:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי יכולים להקצות את התפקיד הזה לאפליקציה.
  • האפליקציה מספקת ממשק משתמש שבו המשתמשים יכולים לנהל את אנשי הקשר שלהם (לדוגמה, להציג, לשתף, להוסיף, להסיר או לחפש איש קשר). האפליקציה מעדכנת את הספק של אנשי הקשר כשהמשתמש מעדכן את אנשי הקשר שלו מהאפליקציה. המשתמשים יכולים גם להתקשר, לשלוח אימייל או לשלוח הודעות טקסט לאנשי הקשר שלהם מהאפליקציה.
SYSTEM_SPEECH_RECOGNIZER כל החישובים האלה:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי יכולים להקצות את התפקיד הזה לאפליקציה.
  • האפליקציה מספקת שירות שיכול לבצע זיהוי דיבור.
  • כשהאפליקציה מקבלת שידורים חיים של מיקרופון מאפליקציה אחרת לצורך זיהוי דיבור, היא משייכת את השימוש במיקרופון בצורה נכונה לאפליקציית השיחות ומעדכנת את הנתונים הסטטיסטיים של הפעולות באפליקציה בהתאם.
SYSTEM_WIFI_COEX_MANAGER כל החישובים האלה:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי יכולים להקצות את התפקיד הזה לאפליקציה.
  • לאפליקציה יש שירות שמגדיר באופן דינמי רשימה של ערוצי Wi-Fi שהמכשיר צריך להימנע מהם בגלל הפרעות ברשת הסלולרית.
SYSTEM_WELLBEING כל החישובים האלה:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי יכולים להקצות את התפקיד הזה לאפליקציה.
  • האפליקציה צריכה לספק למשתמשים פונקציונליות כדי לצמצם את הסחות הדעת, ולספק למשתמשים נתונים סטטיסטיים לגבי אופן השימוש שלהם במכשיר (למשל, זמן המסך בשבוע).
SYSTEM_TELEVISION_NOTIFICATION_HANDLER כל החישובים האלה:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי יכולים להקצות את התפקיד הזה לאפליקציה.
  • חובה להציג באפליקציה התראות 'שימו לב' למשתמשים במכשירי טלוויזיה. האפליקציה צריכה להציג גם התראות פעילות נוכחיות כאשר ה-Intent android.app.action.TOGGLE_NOTIFICATION_HANDLER_PANEL נשלח (מ-SystemUI).
SYSTEM_COMPANION_DEVICE_ספק כל החישובים האלה:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי יכולים להקצות את התפקיד הזה לאפליקציה.
  • האפליקציה צריכה לזהות מכשירים היקפיים בקרבתה. צריך ממשק משתמש שבו המשתמש יכול לאשר שציוד היקפי מסוים צריך להיות משויך לאפליקציה ולנהל אותה. אחרי שהמשתמש יאשר את ההרשאה, האפליקציה המנהלת תעניק לאפליקציה המשויכת הרשאת גישה לציוד ההיקפי (לדוגמה, השם, הכתובת, הכיתה ומצב החיבור שלו) והיא תוכל להתחיל בתהליך הקישור.
SYSTEM_DOCUMENT_MANAGER כל החישובים האלה:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי יכולים להקצות את התפקיד הזה לאפליקציה.
  • יש פעילות באפליקציה שמאפשרת למשתמשים לגשת למסמכים קיימים וליצור מסמכים חדשים במכשיר.
  • האפליקציה חייבת לעמוד בכל הדרישות שמפורטות בסעיף CDD של Android 2.2.3. תוכנה מתחת לכותרת [3.2.3.1/H-0-1].
SYSTEM_ACTIVITY_RECOGNIZER כל החישובים האלה:
  • האפליקציה היא אפליקציית מערכת.
  • לאפליקציה יש שירות שמוגבל על ידי android.permission.ACTIVITY_RECOGNITION, שיכול לבצע זיהוי פעילות (למשל, ריצה או רכיבה על אופניים).
SYSTEM_UI כל החישובים האלה:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי יכולים להקצות את התפקיד הזה לאפליקציה.
  • לאפליקציה יש ממשק שבו המשתמשים יכולים ליצור אינטראקציה עם הטלפונים שלהם. לדוגמה, המסך הראשי של הטלפון, ניווט, האפליקציות האחרונות, הגדרות מהירות, סרגל ההתראות, מסך הנעילה, בקרת עוצמת הקול.
SYSTEM_TELEVISION_REMOTE_SERVICE כל החישובים האלה:
  • האפליקציה היא אפליקציית מערכת ב-Android TV.
  • רק יצרני ציוד מקורי יכולים להקצות את התפקיד הזה לאפליקציה.
  • האפליקציה כוללת שירות שיכול לתקשר עם מכשיר ממשק אנושי (HID) של הטלוויזיה (לדוגמה, באמצעות BLE), להחדיר אירועים (למשל, לחיצות על לחצנים) ולשלוח נתונים אחרים (למשל, שידור אודיו ממיקרופון מובנה בשלט הרחוק) לפלטפורמה.
SYSTEM_UI_INTELLIGENCE כל החישובים האלה:
  • שירות שמותקן מראש שמספק, באמצעות ממשקי API של framework (ממשקי API ציבוריים או של המערכת), מעבד חכם במכשיר לתכונות של ממשק המשתמש (לדוגמה, חיזוי והצגת האפליקציות הבאות למשתמשים).
  • השירות חייב לעמוד בכל הדרישות המפורטות בסעיף 9.8.6 צילום תוכן ב-Android CDD.
  • הוא לא יכול לקבל את ההרשאה android.permission.INTERNET. במקום זאת, הוא צריך לגשת לאינטרנט דרך ממשקי API מוגדרים היטב בפרויקט בקוד פתוח.
  • אי אפשר לקשר אליו אפליקציות, חוץ מאפליקציות המערכת הבאות: Bluetooth, אנשי קשר, מדיה, טלפוניה, SystemUI ורכיבים שמספקים ממשקי API לאינטרנט. כל קישור מותר צריך להיות מוגדר באופן מפורש דרך ההגדרות של <allow-association> בהגדרות המערכת.
  • האפליקציה לא יכולה לשתף נתונים עם אפליקציות, אלא אם בוצעה פעולה ישירה מהמשתמש (לדוגמה, המשתמש לוחץ במפורש על לחצן בכל פעם שהנתונים משותפים).
SYSTEM_AMBIENT_AUDIO_INTELLIGENCE כל החישובים האלה:
  • זהים לתנאים של SYSTEM_UI_INTELLIGENCE, חוץ מהעובדה שהשירות שמותקן מראש מספק מעבד חכם במכשיר לאודיו מהסביבה (לדוגמה, זיהוי שירים שמושמעים ליד המכשיר).
SYSTEM_AUDIO_INTELLIGENCE כל החישובים האלה:
  • זהים לתנאים של SYSTEM_UI_INTELLIGENCE, חוץ מהעובדה שהשירות שמותקן מראש מספק מעבד חכם במכשיר לאודיו (לדוגמה, הוספת כתוביות לסרטונים, לפודקאסטים, לשיחות טלפון, לשיחות וידאו ולהודעות אודיו).
SYSTEM_NOTIFICATION_INTELLIGENCE כל החישובים האלה:
  • זהים לתנאים של SYSTEM_UI_INTELLIGENCE, חוץ מהבדל אחד: השירות שמותקן מראש מספק מעבד חכם במכשיר להתראות (לדוגמה הצעת תשובות ופעולות להתראות על הודעות).
SYSTEM_TEXT_INTELLIGENCE כל החישובים האלה:
  • זהים לתנאים של SYSTEM_UI_INTELLIGENCE, חוץ מהבדל אחד: השירות שמותקן מראש מספק מעבד מידע חכם במכשיר (לדוגמה, מתן תרגום בזמן אמת או מילוי אוטומטי).
SYSTEM_VISUAL_INTELLIGENCE כל החישובים האלה:
  • זהים לתנאים של SYSTEM_UI_INTELLIGENCE, חוץ מהעובדה שהשירות שמותקן מראש מספק מעבד חכם במכשיר לתכונות חזותיות שקשורות לניתוח נתוני המצלמה. לדוגמה, השארת המסך במסך פעיל בזמן שהמשתמש מסתכל עליו או כדי לקבוע את הכיוון האידיאלי של המסך על סמך כיוון הפנים של המשתמש מהמצלמה הקדמית במכשיר.
COMPANION_DEVICE_APP_STREAMING כל החישובים האלה:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי יכולים להקצות את התפקיד הזה לאפליקציה.
  • האפליקציה יכולה ליצור ולנהל ערוצי תקשורת עם מכשירים מחוברים, כדי לאפשר העברת נתונים. כדי ליצור את ערוצי התקשורת האלה, האפליקציה והמכשירים המחוברים צריכים לאמת זה את זה (למשל, באמצעות הוכחת ידע שלהם לגבי מפתחות משותפים). ערוצי התקשורת חייבים לכלול הגנה מפני הצפנה.
  • האפליקציה יכולה לשלוח התראות מהמכשיר המקומי למכשיר המחובר כדי לאפשר למשתמש לבצע פעולה בהתראות במכשיר המחובר.
  • אפשרות לשדר את המטא-נתונים הנדרשים לסטרימינג של אפליקציה למכשיר המחובר, כמו רשימת האפליקציות הזמינות במכשיר המקומי.
  • לאפשר סטרימינג של אפליקציות מהמכשיר המקומי למכשיר המחובר אחרי שהמשתמש ציין העדפה לעשות זאת בהסכמה מפורשת (בטלפון או במכשיר המחובר).
  • יכולת להפעיל מחדש (החדרה) אירועים שמתרחשים באפליקציה שהופעלה בסטרימינג במכשיר מחובר, חזרה למכשיר המקומי. לדוגמה, הפעלה מחדש של אירוע מגע בטאבלט עם אותן הקואורדינטות בטלפון.
  • האפליקציה יכולה להחליף את הסטרימינג של המיקרופון של המכשיר המקומי בשידור של מיקרופון ממכשיר מחובר, בזמן שאפליקציה שהופעלה בסטרימינג משתמשת במיקרופון.
  • האפליקציה מקליטה אודיו מהמכשיר ומשדרת אותו למכשיר המחובר.
  • חובה לחסום את שידור המצלמה של המכשיר המקומי בזמן שאפליקציה שהופעלה בסטרימינג משתמשת במצלמה.
  • צריך לאמת את תקינות ה-build של מערכת ההפעלה במכשיר המחובר (לדוגמה, באמצעות אימות (attestation) של המכשיר כמו ב-VerifiedBootState).
  • כדאי להעביר סטרימינג של אפליקציות רק אם יש רק חשבון תואם אחד במרשם החשבונות שבמכשיר (לדוגמה, AccountManager ב-Android) בשני המכשירים. אם זה לא המצב, חובה לאשר את הסטרימינג באמצעות קוד חד-פעמי שמוצג במכשיר המקור, ולהזין אותו במכשיר המחובר. חשוב לשים לב: במכשירים שתומכים במשתמשים מרובים (ולא בחשבונות מרובים) עם אותו בידוד נתונים אמין כמו משתמשים מרובים ב-Android, משתמש נספר כמכשיר.
  • אם האימות של החשבון במכשיר המחובר יפוג או יבוטל, צריך להפסיק את הסטרימינג מהמכשיר המחובר באופן מיידי או להתנתק ממנו באופן מיידי.
  • חובה לוודא שמכשיר מחובר נמצא בטווח חיבור ה-Bluetooth של המכשיר המקומי לפני השידור ובמהלכו.
  • חובה לנתק סשנים מתמשכים של סטרימינג של אפליקציות אם המשתמש לא מקיים אינטראקציה עם המכשיר המחובר (לדוגמה, מקלדת, מסך מגע ועכבר לא פעילים) במשך 5 דקות. אפליקציות וידאו בסטרימינג לא נכללות בדרישה הזו.
  • אם במכשיר המקור נעשה שימוש בגורם ידע במסך הנעילה (LSKF), כשהמסך נעול, אסור לאפליקציה לשדר אפליקציות למכשיר מחובר, אלא אם יש במכשיר מסך נעילה והוא לא נעול.
  • אם המכשיר מנוהל על ידי אדמין, האפליקציה צריכה לפעול בהתאם למדיניות שהגדיר האדמין לגבי הפעלה או השבתה של סטרימינג של אפליקציות למכשירים בקרבת מקום (למשל, באמצעות הגדרות DevicePolicyManager ב-Android).
  • צריך לוודא שהמסך המרוחק וכל המקורות של אירועי הקלט מרחוק שייכים לאותו מכשיר לוגי (למשל, מסך מרוחק ומקלדת מחוברת) מנקודת המבט של המשתמש, והאירועים ינותבו בהתאם.
  • למשתמש צריכה להיות אפשרות לסיים את הסטרימינג מהמכשיר המקומי. לדוגמה, באמצעות לחצן בהתראה קבועה. ההתנהגות הזו מוגבלת על ידי מסך הנעילה, אם מוגדרת בטלפון נעילת מסך.
  • חייבת להיות עלות משתלמת במכשיר המקור כשהשידור מתרחש במכשיר אחר, למשל סמל בשורת הסטטוס או התראה קבועה.
DEVICE_POLICY_MANAGEMENT כל החישובים האלה:
  • רק יצרני ציוד מקורי יכולים להקצות את התפקיד הזה לאפליקציה. אפליקציות לא יכולות לבקש את התפקיד הזה, כי הוא אמור לקבל את התפקיד המקורי על שם החבילה שהוגדר על ידי ה-OEM בזמן שליחת המכשיר.
  • לאפליקציה צריכה להיות אפשרות להקצות פרופיל מנוהל (בעלי הפרופיל) או מכשיר מנוהל (בעלי המכשיר), כולל הורדה/התקנה של לקוח Device Policy המתאים, להיות הבעלים של המכשיר/הפרופיל, במידת הצורך.
  • האפליקציה יכולה גם לעדכן באופן דינמי את המשאבים, כמו מחרוזות ופריטים גרפיים שמשמשים לניהול מדיניות המכשיר.
  • האפליקציה יכולה להיות אפליקציית מערכת שהותקנה מראש, או שאפשר להוריד ולהתקין אותה לפני ההקצאה.
  • במקרים שבהם האפליקציה של בעל התפקיד מותקנת אצל משתמש Android מסוים, צריך להתקין אותה בכל הפרופילים הרלוונטיים לאותו משתמש.
SYSTEM_APP_PROTECTION_SERVICE כל החישובים האלה:
  • האפליקציה היא אפליקציית מערכת.
  • המטרה היחידה של האפליקציה היא לזהות אפליקציות שעלולות להזיק (אפליקציות שעלולות לסכן את המשתמשים, את נתוני המשתמשים או את המכשירים, כמו סוסים טרויאנים, פישינג ורוגלות) או תוכנות לא רצויות לנייד.
  • האפליקציה חייבת לעמוד בכל הדרישות המפורטות בסעיף CDD של Android 9.8.6. נתוני אווירה וברמת מערכת ההפעלה.
  • אין להצהיר על ההרשאה הרגילה של android.permission.INTERNET. במקום זאת, עליו לגשת לאינטרנט דרך ממשקי API מוגדרים היטב בפרויקט קוד פתוח.
  • אסור שיהיה לו קישור לאפליקציות, מלבד לאפליקציות המערכת הבאות: נאמן מידע ורכיבים שמספקים ממשקי API של טלפוניה ואינטרנט. כל קישור מותר צריך להיות מוגדר באופן מפורש דרך תצורת <allow-association> בהגדרות המערכת.
  • אסור לו לשתף נתונים עם אפליקציות, אלא אם יש פעולה ישירה מצד המשתמש (לדוגמה, המשתמש לוחץ במפורש על לחצן בכל פעם שהנתונים משותפים).
SYSTEM_autoMOTIVE_CALENDAR_SYNC_MANAGER כל החישובים האלה:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי יכולים להקצות את התפקיד הזה לאפליקציה.
  • יש להעביר את נתוני היומן מטלפון iOS או Android של המשתמש למכשיר Android Auto. נתוני היומן האלה צריכים להישמר במכשיר Android Auto בספק היומן.
  • האפליקציה צריכה לספק רכיב ממשק משתמש בטלפון שהמשתמש יכול להשתמש בו כדי להפעיל את סנכרון היומן, ולבחור את היומנים לסנכרון. האפליקציה צריכה לספק רכיב ממשק משתמש בטלפון שהמשתמש יכול להשתמש בו כדי להשבית את סנכרון היומן.
  • המכשיר צריך לפעול ללא חיבור לאינטרנט. לדוגמה, באמצעות חיבורים ישירים קוויים או אלחוטיים.
AutoMOTIVE_NAVIGATION כל החישובים האלה:
  • יש באפליקציה פעילות שמאפשרת לאפליקציות להפעיל אותן באמצעות בקשות מרומזות של Intent . הפעילות הזו מראה את המיקום הנוכחי של המשתמש ואת הסביבה שלו.
  • יש באפליקציה פעילות שמאפשרת לאפליקציות להפעיל באמצעות בקשות מרומזות של Intent, שמאפשרת למשתמש לנווט למיקום גיאוגרפי ספציפי.
  • יש פעילות שמופעלת באשכול הכלים כשהתמקדות בניווט באפליקציה. הפעילות צריכה להציג את המיקום הנוכחי של המשתמש ואת הסביבה שלו, ולאפשר לו לנווט למיקום גיאוגרפי מסוים.
COMPANION_DEVICE_COMPUTER כל החישובים האלה:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי יכולים להקצות את התפקיד הזה לאפליקציה.
  • המשתמשים יכולים לשקף התראות ולגשת לתמונות ולמדיה מהטלפון במחשב מחובר.
SYSTEM_SETTINGS_INTELLIGENCE לפחות אחד מהערכים האלה:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי יכולים להקצות את התפקיד הזה לאפליקציה.
  • כולל שירות שמספק תכונות חכמות לאפליקציית ההגדרות, כמו הצעות וחיפוש.
פתקים כל החישובים האלה:
  • באפליקציה יש פעילות שאפליקציות יכולות להפעיל באמצעות בקשות מרומזות של Intent. הפעילות מאפשרת למשתמש ליצור הערה, גם אם המסך נעול או לא נעול.
  • האפליקציה צריכה לתמוך בכך באמצעות פעילות שכוללת מסנן Intent עבור android.intent.action.CREATE_NOTE עם הקטגוריה android.intent.category.DEFAULT. בנוסף, הפעילות צריכה לטפל כראוי ב-Intent הנוסף android.intent.extra.USE_STYLUS_MODE.
  • חייבים להגדיר באפליקציה את מאפייני המניפסט showWhenLocked ואת turnScreenOn כ-true.
COMPANION_DEVICE_GLASSES האפליקציה יכולה לשלוח בקשות לשייך למכשיר משקפיים ולנהל אותו (באמצעות ה-API שסופק על ידי המחלקה CompanionDeviceManager). אחרי שמחברים בין מכשיר המשקפיים לאפליקציה באמצעות ממשק המשתמש שסופק על ידי CDM, המשתמשים יכולים לנהל את המשקפיים על ידי מתן גישה לאנשי הקשר והרשאה לניהול ההתראות ושיחות הטלפון.
COMPANION_DEVICE_NEARBY_DEVICE_STREAMING כל החישובים האלה:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי יכולים להקצות את התפקיד הזה לאפליקציה.
  • האפליקציה יכולה ליצור ולנהל ערוצי תקשורת עם מכשירים מחוברים, כדי שהמכשירים יוכלו לשלוח ביניהם נתונים. כדי ליצור את ערוצי התקשורת האלה, האפליקציה והמכשירים המחוברים צריכים לאמת זה את זה (למשל, באמצעות הוכחת ידע שלהם לגבי מפתחות משותפים). ערוצי התקשורת חייבים לכלול הגנה מפני הצפנה.
  • האפליקציה יכולה לשלוח התראות מהמכשיר המקומי למכשיר המחובר כדי לאפשר למשתמש לבצע פעולה בהתראות במכשיר המחובר.
  • אפשרות לשדר את המטא-נתונים הנדרשים לסטרימינג של אפליקציה למכשיר המחובר, כמו רשימת האפליקציות הזמינות במכשיר המקומי.
  • לאפשר סטרימינג של אפליקציות מהמכשיר המקומי למכשיר המחובר אחרי שהמשתמש ציין העדפה לעשות זאת בהסכמה מפורשת (בטלפון או במכשיר המחובר).
  • יכולת להפעיל מחדש (החדרה) אירועים שמתרחשים באפליקציה שהופעלה בסטרימינג במכשיר מחובר, חזרה למכשיר המקומי. לדוגמה, הפעלה מחדש של אירוע מגע בטאבלט עם אותן קואורדינטות כמו בטלפון, או הפעלה מחדש של אירוע קלט שהתרחש במכשיר המשקפיים עם סמנטיקה של קלט זהה לזה של הטלפון.
  • האפליקציה יכולה להחליף את הסטרימינג של המיקרופון של המכשיר המקומי בשידור של מיקרופון ממכשיר מחובר, בזמן שאפליקציה שהופעלה בסטרימינג משתמשת במיקרופון.
  • האפליקציה מקליטה אודיו מהמכשיר ומשדרת אותו למכשיר המחובר.
  • צריך לאמת את תקינות ה-build של מערכת ההפעלה במכשיר המחובר (לדוגמה, באמצעות אימות (attestation) של המכשיר כמו ב-VerifiedBootState).
  • מעבירים בסטרימינג רק אפליקציות שבהן יש רק חשבון תואם אחד במרשם החשבונות שבמכשיר (לדוגמה, AccountManager ב-Android) בשני המכשירים. אם זה לא המצב, חובה לאשר את הסטרימינג באמצעות קוד חד-פעמי שמוצג במכשיר המקור, ולהזין אותו במכשיר המחובר. הערה: במקרה של מכשירים שתומכים במשתמשים מרובים (ולא בחשבונות מרובים) עם אותו בידוד נתונים מובטח, כמו משתמשים מרובים ב-Android, משתמש נספר כמכשיר.
  • אם האימות של החשבון במכשיר המחובר יפוג או יבוטל, צריך להפסיק את הסטרימינג מהמכשיר המחובר באופן מיידי או להתנתק ממנו באופן מיידי.
  • אם במכשיר המקור נעשה שימוש בגורם ידע במסך הנעילה (LSKF), כשהמסך נעול, אסור לאפליקציה לשדר אפליקציות למכשיר מחובר, אלא אם יש במכשיר מסך נעילה והוא לא נעול.
  • אם המכשיר מנוהל על ידי אדמין, האפליקציה צריכה לפעול בהתאם למדיניות שהגדיר האדמין לגבי הפעלה או השבתה של סטרימינג למכשירים בקרבת מקום (למשל, באמצעות הגדרות DevicePolicyManager ב-Android).
  • צריך לוודא שהמסך המרוחק וכל המקורות של אירועי הקלט מרחוק שייכים לאותו מכשיר לוגי (למשל, מסך מרוחק ומקלדת מחוברת) מנקודת המבט של המשתמש, ושהאירועים ינותבו בהתאם בהתאם.
  • למשתמש צריכה להיות אפשרות לסיים את הסטרימינג מהמכשיר המקומי. לדוגמה, באמצעות לחצן בהתראה קבועה. ההתנהגות הזו מוגבלת על ידי מסך הנעילה, אם מוגדרת בטלפון נעילת מסך.
  • חייבת להיות עלות משתלמת במכשיר המקור כשהשידור מתרחש במכשיר אחר, למשל סמל בשורת הסטטוס או התראה קבועה.