תפקידים ב-Android

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

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

תפקיד הדרישות
ASSISTANT לפחות אחד מהערכים האלה:
  • לאפליקציה יש פעילות שמבצעת פעולות עזרה, על סמך המידע על ההקשר של המשתמש כשביקש את העזרה (לדוגמה, שם החבילה של האפליקציה הנוכחית בחזית והמידע ההקשרי שלה).
  • לאפליקציה יש שירות אינטראקציה קולית שפועל תמיד, שמוגבל על ידי ההרשאה android.permission.BIND_VOICE_INTERACTION. השירות הזה יכול לבצע זיהוי קולי ולתת אירועי אינטראקציה קולית פעילים. בנוסף, באפליקציה יש דגל מפורש שמציין שהשירות מסוגל לטפל בפעולה של העזרה.
BROWSER כל החישובים האלה:
  • באפליקציה יש פעילות שאפליקציות יכולות להפעיל באמצעות בקשות כוונה משתמעת, שמציגה דף אינטרנט שתואם לכתובת http://.
  • האפליקציה צריכה לטפל בניווט בין הקישורים. כלומר, אם המשתמש צופה בדף אינטרנט ולוחץ על כתובת http:// בטקסט, לאפליקציה צריכה להיות אפשרות להציג את התוכן שתואם לקישור שנבחר, ללא התערבות נוספת של המשתמש.
  • האפליקציה צריכה להיות מסוגלת לספק את המידע הנוכחי על המיקום הגיאוגרפי של המכשיר לדפי אינטרנט כשמתבצעת בקשה והמשתמש מאשר את הבקשה.
DIALER כל החישובים האלה:
  • לאפליקציה יש פעילות שאפליקציות יכולות להפעיל באמצעות בקשות כוונה משתמעת, שמספקת את ממשק המשתמש של השיחה בזמן שהמכשיר נמצא בשיחה.
  • האפליקציה יכולה לטפל בכוונות של שיחות נכנסות, להציג למשתמש את המידע שקשור לשיחה (לדוגמה, מספר הטלפון של מבצע השיחה) ולאפשר למשתמש לענות לשיחה או לדחות אותה.
  • האפליקציה מספקת למשתמש דרך ליזום שיחות ולראות את היסטוריית השיחות במכשיר.
SMS כל:
  • האפליקציה עומדת בכל הדרישות לאפליקציות SMS.
  • לאפליקציה יש פעילות שאפליקציות יכולות להפעיל באמצעות בקשות כוונה משתמעת, שיכולות לשלוח הודעה למספר טלפון.
  • לאפליקציה יש שירות שמוגבל על ידי ההרשאה android.permission.SEND_RESPOND_VIA_MESSAGE וניתן להפעיל אותו באמצעות כוונות מרומזות. השירות הזה יכול להעביר הודעות שהתקבלו מאפליקציית 'טלפון' כשהמשתמש בוחר להשיב להודעה במהלך שיחה נכנסת. האפליקציה יכולה לשלוח הודעות דרך מערכת ההודעות שלה.
  • לאפליקציה יש שני מקלטי שידור, אחד עם הרשאה android.permission.BROADCAST_SMS והשני עם הרשאה android.permission.BROADCAST_WAP_PUSH, שיכולים להאזין להודעות SMS ו-MMS מבוססות-טקסט שנשלחות למכשיר, בהתאמה. לאחר מכן, האפליקציה אחראית לכתוב את ההודעות לספק ה-SMS וליידע את המשתמשים.
EMERGENCY כל החישובים האלה:
  • האפליקציה היא אפליקציית מערכת.
  • באפליקציה יש פעילות שמציגה את פרטי החירום של המשתמש. כל אחד יכול לנווט למסך הזה באמצעות לחצן החירום בפעילות של חייגן החירום.
HOME באפליקציה יש פעילות שיכולה להפעיל את מסך הבית כשהמשתמש לוחץ על הלחצן הראשי. במסך הבית צריכים להופיע סמלי אפליקציות, ווידג'טים ותמיכה בניווט על סמך לחצנים או תנועות (לדוגמה, החלקה למעלה כדי לראות את כל האפליקציות).
CALL_REDIRECTION לאפליקציה יש שירות שמוגבל על ידי ההרשאה android.permission.BIND_CALL_REDIRECTION_SERVICE, שאפשר לקשר למסגרת התקשורת. השירות מקבל את מספר הטלפון היוצא מסגרת התקשורת ומבצע אחת מהפעולות הבאות:
  • מאפשרים לבצע את השיחה כמו שהיא.
  • צריך לשנות את המספר שיוצא כדי לנתב דרך מספר proxy.
  • מבטלים את השיחה.
CALL_SCREENING לאפליקציה יש שירות שמוגבל על ידי ההרשאה android.permission.BIND_SCREENING_SERVICE, שמבצע שתי פונקציות:
  • חסימת שיחות וסינון שיחות: השירות יכול לקבוע אילו שיחות יישלחו לאפליקציית החיוג בטלפון (ואולי יישמע צלצול, בהתאם למצב 'נא לא להפריע' או לעוצמת הקול), ואילו שיחות יישלחו לתא הקולי ללא צלצול.
  • זיהוי שיחה: השירות יכול לזהות מידע על שיחה ולהציג אותו דרך ממשק משתמש.
SYSTEM_GALLERY כל:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי יכולים להקצות את התפקיד הזה לאפליקציה.
  • האפליקציה מספקת ממשק משתמש שמאפשר למשתמשים לאחסן, לארגן ולהציג את התמונות והסרטונים שלהם.
SYSTEM_AUTOMOTIVE_CLUSTER כל:
  • האפליקציה היא אפליקציית מערכת ב-Automotive.
  • רק יצרני ציוד מקורי (OEM) יכולים להקצות את התפקיד הזה לאפליקציה.
  • האפליקציה מספקת יכולת להציג באשכול הרכב (בדרך כלל ליד ההגה) כדי שמשתמשים יוכלו לענות לשיחות טלפון ולגשת לרשימות אנשי הקשר וליומני השיחות.
COMPANION_DEVICE_WATCH האפליקציה יכולה לשלוח בקשות כדי לשייך מכשיר שעון ולנהל אותו (באמצעות ה-API שסופק על ידי הכיתה CompanionDeviceManager). כשהשעון והאפליקציה מחוברים דרך ממשק המשתמש של האפליקציה, המשתמשים יכולים לנהל את השעון דרך האפליקציה, כולל סנכרון של אנשי קשר ותזמון, וניהול של התראות ושיחות טלפון.
SYSTEM_AUTOMOTIVE_PROJECTION כל:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי יכולים להקצות את התפקיד הזה לאפליקציה.
  • האפליקציה מאפשרת להקרין את מסך הטלפון על מסך הרכב. היא מאפשרת לנהגים לגשת לאפליקציות בטלפונים עם Android ולשלוט בהן, כולל מוזיקה, ניווט, שיחות טלפון וחיפוש, באמצעות מנגנוני קלט ברכב, כולל מגע, פקדים להגהה ופקודות קוליות.
SYSTEM_SHELL כל:
  • האפליקציה היא אפליקציית מערכת שמוקצה לה המזהה הייחודי Process.SHELL_UID.
  • רק יצרני ציוד מקורי יכולים להקצות את התפקיד הזה לאפליקציה.
  • האפליקציה מספקת ממשק שפועל ברמת שורת הפקודה, כדי שמשתמשים יוכלו לתקשר עם מערכת ההפעלה Android. לדוגמה, הצגת התוכן של תיקייה או הפעלת אפליקציות. אפשר להריץ פקודות מעטפת באופן פרוגרמטי על ידי אפליקציות (כאשר הוענקו ההרשאות הדרושות), או דרך כלי ה-ADB.
SYSTEM_CONTACTS כל:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי יכולים להקצות את התפקיד הזה לאפליקציה.
  • האפליקציה מספקת ממשק משתמש שמאפשר למשתמשים לנהל את אנשי הקשר שלהם (לדוגמה, להציג, לשתף, להוסיף, להסיר או לחפש איש קשר). האפליקציה מעדכנת את ספק אנשי הקשר כשהמשתמש מעדכן את אנשי הקשר שלו מהאפליקציה. המשתמשים יכולים גם להתקשר לאנשי הקשר שלהם, לשלוח להם אימיילים או לשלוח להם הודעות טקסט מהאפליקציה.
SYSTEM_SPEECH_RECOGNIZER כל החישובים האלה:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי יכולים להקצות את התפקיד הזה לאפליקציה.
  • האפליקציה מספקת שירות שיכול לבצע זיהוי דיבור.
  • כשהאפליקציה מקבלת מיקרופון בשידור חי מאפליקציה אחרת לצורך זיהוי דיבור, היא משייכת בצורה נכונה את השימוש במיקרופון לאפליקציה שבה מתבצעת השיחה ומעדכנת את הנתונים הסטטיסטיים של פעולת האפליקציה בהתאם.
SYSTEM_WIFI_COEX_MANAGER כל:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי (OEM) יכולים להקצות את התפקיד הזה לאפליקציה.
  • לאפליקציה יש שירות שמגדיר באופן דינמי רשימה של ערוצי Wi-Fi שהמכשיר צריך להימנע מהם עקב הפרעות ברשת הסלולרית.
SYSTEM_WELLBEING כל:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי יכולים להקצות את התפקיד הזה לאפליקציה.
  • האפליקציה צריכה לספק למשתמשים את היכולת לצמצם את הסחות הדעת, ולספק למשתמשים נתונים סטטיסטיים לגבי אופן השימוש שלהם במכשיר (למשל, זמן המסך בשבוע).
SYSTEM_TELEVISION_NOTIFICATION_HANDLER כל:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי (OEM) יכולים להקצות את התפקיד הזה לאפליקציה.
  • האפליקציה חייבת להציג התראות מראש למשתמשים במכשירי טלוויזיה. האפליקציה צריכה גם להציג את ההתראות הפעילות הנוכחיות כשהכוונה android.app.action.TOGGLE_NOTIFICATION_HANDLER_PANEL נשלחת (מ-SystemUI).
SYSTEM_COMPANION_DEVICE_PROVIDER כל:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי (OEM) יכולים להקצות את התפקיד הזה לאפליקציה.
  • האפליקציה צריכה להיות מסוגלת לזהות ציוד היקפי בסביבתה. צריך להיות לה ממשק משתמש שבו המשתמש יכול לאשר שציוד היקפי מסוים צריך להיות משויך לאפליקציה מסוימת, ושהיא מנהלת אותו. כשהמשתמש מאשר, האפליקציה המנהלת מעניקה לאפליקציה המשויכת הרשאה לגשת לציוד ההיקפי (למשל, השם, הכתובת, הכיתה ומצב הקישור שלו), והיא יכולה להתחיל את תהליך הקישור.
SYSTEM_DOCUMENT_MANAGER כל:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי (OEM) יכולים להקצות את התפקיד הזה לאפליקציה.
  • באפליקציה יש פעילות שמאפשרת למשתמשים לגשת למסמכים קיימים וליצור מסמכים חדשים במכשיר.
  • האפליקציה חייבת לעמוד בכל הדרישות שמפורטות בסעיף CDD של Android 2.2.3. תוכנה מתחת לכותרת [3.2.3.1/H-0-1].
SYSTEM_ACTIVITY_RECOGNIZER כל:
  • האפליקציה היא אפליקציית מערכת.
  • לאפליקציה יש שירות שמוגבל על ידי android.permission.ACTIVITY_RECOGNITION, שיכול לבצע זיהוי פעילות (לדוגמה, ריצה או רכיבה על אופניים).
SYSTEM_UI כל החישובים האלה:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי (OEM) יכולים להקצות את התפקיד הזה לאפליקציה.
  • לאפליקציה יש ממשק שמאפשר למשתמשים לבצע פעולות בטלפון. לדוגמה, המסך הראשי של הטלפון, הניווט, האפליקציות האחרונות, ההגדרות המהירות, סרגל ההתראות, מסך הנעילה, בקרת עוצמת הקול.
SYSTEM_TELEVISION_REMOTE_SERVICE כל:
  • האפליקציה היא אפליקציית מערכת ב-Android TV.
  • רק יצרני ציוד מקורי (OEM) יכולים להקצות את התפקיד הזה לאפליקציה.
  • האפליקציה כוללת שירות שיכול לתקשר עם מכשיר ממשק אנושי (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 כל:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי (OEM) יכולים להקצות את התפקיד הזה לאפליקציה.
  • החל מגרסה 15 של Android
    כשמקשרים את המכשיר א' למכשיר ב':
    בכל אחד מהמכשירים חייב להיות לפחות חשבון תואם אחד ב-AccountManager, וצריך לאשר את ההתאמה באמצעות קוד חד-פעמי.
    • המשתמש צריך לאשר את סיסמת החשבון במכשיר המרוחק המשני בזמן ההתאמה, או
    • הקוד החד-פעמי חייב להופיע במכשיר המקור ולהזין אותו במכשיר המחובר.
    • אין דרישה לטווח במהלך הסטרימינג.

    לחלופין, מכשיר א' ומכשיר ב' חייבים להיות בטווח Bluetooth זה של זה, וצריך לאשר את הסטרימינג באמצעות קוד חד-פעמי.
    • הקוד החד-פעמי מוצג במכשיר המקור ומוזן במכשיר המחובר.
    • המכשירים צריכים להישאר בטווח Bluetooth אחד מהשני במהלך הסטרימינג.
  • האפליקציה יכולה ליצור ולנהל ערוצי תקשורת עם מכשירים מחוברים כדי שיוכלו להחליף נתונים. כדי ליצור את ערוצי התקשורת האלה, האפליקציה והמכשירים המחוברים חייבים לבצע אימות הדדי (לדוגמה, על ידי הוכחת הידע שלהם במפתחות משותפים). ערוצי התקשורת חייבים לכלול הגנה מפני הצפנה.
  • האפליקציה יכולה לשלוח התראות מהמכשיר המקומי למכשיר המחובר כדי לאפשר למשתמש לבצע פעולה בהתראות במכשיר המחובר.
  • להעביר בסטרימינג את המטא-נתונים הנדרשים לסטרימינג של האפליקציות למכשיר המחובר, כמו רשימת האפליקציות הזמינות במכשיר המקומי.
  • להעביר (לסטרימינג) אפליקציות מהמכשיר המקומי למכשיר המחובר אחרי שהמשתמש הצביע על העדפתו לעשות זאת בהסכמה מפורשת (בטלפון או במכשיר המחובר).
  • אפשרות להפעיל מחדש (להחדיר) אירועים שמתרחשים באפליקציה שמשודרת במכשיר מחובר, חזרה במכשיר המקומי. לדוגמה, אפשר להפעיל מחדש אירוע מגע בטאבלט באותן קואורדינטות בטלפון.
  • האפליקציה יכולה להחליף את הסטרימינג של המיקרופון במכשיר המקומי בסטרימינג של המיקרופון במכשיר המחובר, בזמן שאפליקציה בסטרימינג משתמשת במיקרופון.
  • האפליקציה מתעדת אודיו מהמכשיר ומעבירה אותו בסטרימינג למכשיר המחובר.
  • חובה לחסום את שידור המצלמה המקומי של המכשיר בזמן שאפליקציה בסטרימינג משתמשת במצלמה.
  • צריך לאמת את תקינות ה-build של מערכת ההפעלה במכשיר המחובר (לדוגמה, באמצעות אימות (attestation) של המכשיר כמו ב-VerifiedBootState).
  • להעביר בסטרימינג רק אפליקציות שבהן יש רק חשבון תואם אחד במרשם החשבונות במכשיר (לדוגמה, הכיתה AccountManager ב-Android) בשני המכשירים. אם זה לא המצב, צריך לאשר את הסטרימינג באמצעות קוד חד-פעמי שמוצג במכשיר המקור ומוזן במכשיר המחובר. חשוב לשים לב: במכשירים שתומכים במשתמשים מרובים (ולא בחשבונות מרובים) עם אותו בידוד נתונים אמין כמו משתמשים מרובים ב-Android, משתמש נספר כמכשיר.
  • אם תוקף האימות של החשבון במכשיר המחובר יפוג או אם האימות יבוטל, צריך להפסיק את הסטרימינג ולנתק את המכשיר המחובר באופן מיידי.
  • צריך לנתק סשנים פעילים של סטרימינג באפליקציה אם המשתמש לא מפעיל את המכשיר המחובר (לדוגמה, המקלדת, המסך המגע והעכבר לא פעילים) במשך 5 דקות. אפליקציות וידאו בסטרימינג לא נכללות בדרישה הזו.
  • החל מ-Android 15
    צריך לנתק את כל המכשירים הווירטואליים לאחר זמן הקצוב לפעילות במצב חוסר פעילות במכשיר הרחוק שבו תוכן המסך גלוי. יכול להיות שהמסך של המכשיר המרוחק יישאר דלוק במקרים כמו WakeLock, שמשאירים את המסך של מכשיר Android דלוק. חייב להיות זמן קצוב לתפוגה של זמן חוסר פעילות. אם למכשיר המרוחק אין זמן קצוב לתפוגה במצב חוסר פעילות, צריך להשתמש בזמן קצוב לתפוגה במצב חוסר פעילות של 5 דקות לכל היותר.
  • אם במכשיר המקור נעשה שימוש בגורם ידע במסך הנעילה (LSKF), כשהמסך נעול, אסור לאפליקציה לשדר אפליקציות למכשיר מחובר, אלא אם יש במכשיר מסך נעילה והוא לא נעול.
  • אם המכשיר מנוהל על ידי אדמין, האפליקציה צריכה לפעול בהתאם למדיניות שהגדיר האדמין לגבי הפעלה או השבתה של סטרימינג של אפליקציות למכשירים בקרבת מקום (למשל, באמצעות ההגדרות של DevicePolicyManager ב-Android).
  • צריך לוודא שהמסך המרוחק וכל מקורות האירועים של הקלט מרחוק שייכים לאותו מכשיר לוגי (למשל, מסך מרוחק ומקלדת מחוברת) מנקודת המבט של המשתמש, ושהאירועים מנותבים בהתאם.
  • המשתמש צריך להיות מסוגל לסיים את הסטרימינג מהמכשיר המקומי, למשל באמצעות לחצן בהתראה קבועה. ההתנהגות הזו מוגבלת על ידי מסך הנעילה, אם מוגדרת בטלפון נעילת מסך. החל מ-Android 15, צריך להציג את האפשרות הזו באופן קבוע במכשיר המקומי, כך שהיא תמיד תהיה גלויה מעל למידע שנראה במסך.
  • חייב להופיע סימן במכשיר המקור כשהסטרימינג מתבצע במכשיר אחר, כמו סמל בשורת הסטטוס או התראה קבועה.
DEVICE_POLICY_MANAGEMENT כל:
  • רק יצרני ציוד מקורי יכולים להקצות את התפקיד הזה לאפליקציה. אפליקציות לא יכולות לבקש את התפקיד הזה, כי הוא אמור להוקצה כברירת מחדל לשם החבילה שהוגדר על ידי יצרן הציוד המקורי כשהמכשיר נשלח.
  • האפליקציה צריכה להיות מסוגלת להקצות פרופיל מנוהל (בעלי הפרופיל) או מכשיר מנוהל (בעלי המכשיר), כולל הורדה והתקנה של לקוח מדיניות המכשיר המתאים כדי להיות הבעלים של המכשיר או הפרופיל, אם יש צורך בכך.
  • האפליקציה יכולה גם לעדכן באופן דינמי משאבים, כמו מחרוזות ופריטים גרפיים שמשמשים לניהול מדיניות המכשיר.
  • האפליקציה יכולה להיות אפליקציית מערכת שמותקנת מראש, או אפליקציה שצריך להוריד ולהתקין לפני ההקצאה.
  • במקרים של הקצאת הרשאות לבעלים של פרופיל, כשאפליקציית הבעלים של התפקיד מותקנת במשתמש Android נתון, היא צריכה להיות מותקנת בכל הפרופילים הרלוונטיים של אותו משתמש.
SYSTEM_APP_PROTECTION_SERVICE כל:
  • האפליקציה היא אפליקציית מערכת.
  • המטרה היחידה של האפליקציה היא לזהות אפליקציות שעלולות להזיק (אפליקציות שעלולות לסכן משתמשים, נתוני משתמשים או מכשירים, כמו אפליקציות טרויאניות, פישינג ותוכנות ריגול) או תוכנה לא רצויה לנייד.
  • האפליקציה חייבת לעמוד בכל הדרישות שמפורטות בקטע 9.8.6 ב-CDD של Android. נתונים ברמת מערכת ההפעלה ונתונים סביבתיים.
  • האפליקציה לא יכולה להצהיר על ההרשאה הרגילה android.permission.INTERNET. במקום זאת, הוא צריך לגשת לאינטרנט דרך ממשקי API מוגדרים היטב בפרויקט בקוד פתוח.
  • אסור לאפליקציה לקשר לאפליקציות, מלבד לאפליקציות המערכת הבאות: Permission Controller ורכיבים שמספקים ממשקי API של טלפוניה ואינטרנט. כל קישור מותר צריך להיות מוגדר באופן מפורש דרך תצורת <allow-association> בהגדרות המערכת.
  • אסור לאפליקציה לשתף נתונים עם אפליקציות אחרות, אלא אם המשתמש מבצע פעולה ישירה (לדוגמה, המשתמש לוחץ במפורש על לחצן בכל פעם שהנתונים משותפים).
SYSTEM_AUTOMOTIVE_CALENDAR_SYNC_MANAGER כל:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי (OEM) יכולים להקצות את התפקיד הזה לאפליקציה.
  • האפליקציה צריכה להעביר את נתוני היומן מטלפון iOS או Android של המשתמש למכשיר Android Auto. נתוני היומן האלה צריכים להישמר במכשיר Android Auto בספק היומן.
  • האפליקציה צריכה לספק רכיב ממשק משתמש בטלפון שהמשתמש יכול להשתמש בו כדי להפעיל את סנכרון היומן, ולבחור את היומנים לסנכרון. האפליקציה חייבת לספק רכיב ממשק משתמש בטלפון שהמשתמש יכול להשתמש בו כדי להשבית את סנכרון היומן.
  • האפליקציה אמורה לפעול ללא חיבור לאינטרנט. לדוגמה, באמצעות חיבורים ישירים קוויים או אלחוטיים.
AUTOMOTIVE_NAVIGATION כל החישובים האלה:
  • יש באפליקציה פעילות שאפליקציות יכולות להפעיל באמצעות בקשות מרומזות של Intent, שבהן רואים את המיקום הנוכחי של המשתמש ואת הסביבה שלו.
  • יש באפליקציה פעילות שאפליקציות יכולות להפעיל באמצעות בקשות מרומזות של Intent, שמאפשרת למשתמש לנווט למיקום גיאוגרפי ספציפי.
  • לאפליקציה יש פעילות שמופעלת באשכול הכלים כשהיא נמצאת במיקוד הניווט. הפעילות צריכה להציג את המיקום הנוכחי של המשתמש ואת הסביבה שלו, ולאפשר לו לנווט למיקום גיאוגרפי מסוים.
COMPANION_DEVICE_COMPUTER כל החישובים האלה:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי (OEM) יכולים להקצות את התפקיד הזה לאפליקציה.
  • המשתמשים יכולים לשקף התראות ולגשת לתמונות ולמדיה מהטלפון במחשב מחובר.
SYSTEM_SETTINGS_INTELLIGENCE לפחות אחת מהאפשרויות הבאות:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי יכולים להקצות את התפקיד הזה לאפליקציה.
  • יש לו שירות שמספק תכונות בינה לאפליקציית ההגדרות, כמו הצעות וחיפוש.
NOTES כל:
  • באפליקציה יש פעילות שאפליקציות יכולות להפעיל באמצעות בקשות סמויות ל-Intent. הפעילות הזו מאפשרת למשתמש ליצור הערה גם אם המסך נעול וגם אם הוא לא נעול.
  • כדי לתמוך בכך, האפליקציה צריכה לכלול פעילות עם מסנן Intent ל-android.intent.action.CREATE_NOTE עם הקטגוריה android.intent.category.DEFAULT. בנוסף, הפעילות צריכה לטפל כראוי ב-intent extra‏ android.intent.extra.USE_STYLUS_MODE.
  • באפליקציה צריך להגדיר את מאפייני המניפסט showWhenLocked ו-turnScreenOn לערך true.
COMPANION_DEVICE_GLASSES האפליקציה יכולה לשלוח בקשות כדי לשייך מכשיר משקפיים ולנהל אותו (באמצעות ה-API שסופק על ידי הכיתה CompanionDeviceManager). כשמכשיר המשקפיים והאפליקציה מחוברים באמצעות ממשק המשתמש ש-CDM מספק, המשתמשים יכולים לנהל את מכשיר המשקפיים על ידי מתן גישה לאנשי הקשר והרשאה לניהול התראות ושיחות טלפון.
COMPANION_DEVICE_NEARBY_DEVICE_STREAMING כל:
  • האפליקציה היא אפליקציית מערכת.
  • רק יצרני ציוד מקורי (OEM) יכולים להקצות את התפקיד הזה לאפליקציה.
  • החל מגרסה 15 של Android
    כשמקשרים את המכשיר א' למכשיר ב':
    בכל אחד מהמכשירים חייב להיות לפחות חשבון תואם אחד ב-AccountManager, וצריך לאשר את ההתאמה באמצעות קוד חד-פעמי.
    • המשתמש צריך לאשר את סיסמת החשבון במכשיר המרוחק המשני בזמן ההתאמה, או
    • הקוד החד-פעמי חייב להופיע במכשיר המקור ולהזין אותו במכשיר המחובר.
    • אין דרישה לטווח במהלך הסטרימינג.

    לחלופין, מכשיר א' ומכשיר ב' חייבים להיות בטווח Bluetooth זה של זה, וצריך לאשר את הסטרימינג באמצעות קוד חד-פעמי.
    • הקוד החד-פעמי מוצג במכשיר המקור ומוזן במכשיר המחובר.
    • המכשירים צריכים להישאר בטווח Bluetooth אחד מהשני במהלך הסטרימינג.
  • האפליקציה יכולה ליצור ולנהל ערוצי תקשורת עם מכשירים מחוברים, כדי שהמכשירים יוכלו לשלוח ביניהם נתונים. כדי ליצור את ערוצי התקשורת האלה, האפליקציה והמכשירים המחוברים צריכים לאמת זה את זה (למשל, על ידי הוכחת הידע שלהם במפתחות משותפים). ערוצי התקשורת חייבים להיות מוגנים באמצעות הצפנה מקצה לקצה.
  • האפליקציה יכולה לשלוח התראות מהמכשיר המקומי למכשיר המחובר כדי לאפשר למשתמש לבצע פעולות לגבי ההתראות במכשיר המחובר.
  • להעביר בסטרימינג את המטא-נתונים הנדרשים לסטרימינג של האפליקציות למכשיר המחובר, כמו רשימת האפליקציות הזמינות במכשיר המקומי.
  • להעביר (לסטרימינג) אפליקציות מהמכשיר המקומי למכשיר המחובר אחרי שהמשתמש הצביע על העדפתו לעשות זאת בהסכמה מפורשת (בטלפון או במכשיר המחובר).
  • יכולת להפעיל מחדש (החדרה) אירועים שמתרחשים באפליקציה שהופעלה בסטרימינג במכשיר מחובר, חזרה למכשיר המקומי. לדוגמה, אפשר להפעיל מחדש אירוע מגע בטאבלט באותן קואורדינטות שבהן הוא התרחש בטלפון, או להפעיל מחדש אירוע קלט שהתרחש במכשיר המשקפיים עם אותה סמנטיקה של קלט כמו בטלפון.
  • האפליקציה יכולה להחליף את הסטרימינג של המיקרופון במכשיר המקומי בסטרימינג של המיקרופון במכשיר המחובר, בזמן שאפליקציה בסטרימינג משתמשת במיקרופון.
  • האפליקציה מתעדת אודיו מהמכשיר ומעבירה אותו בסטרימינג למכשיר המחובר.
  • צריך לאמת את תקינות ה-build של מערכת ההפעלה של המכשיר המחובר (לדוגמה, באמצעות אימות המכשיר כמו ב-VerifiedBootState).
  • כדאי להעביר סטרימינג של אפליקציות רק אם יש רק חשבון תואם אחד במרשם החשבונות שבמכשיר (לדוגמה, AccountManager ב-Android) בשני המכשירים. אם זה לא המצב, צריך לאשר את הסטרימינג באמצעות קוד חד-פעמי שמוצג במכשיר המקור ומוזן במכשיר המחובר. חשוב לזכור שבמכשירים שתומכים בכמה משתמשים (ולא בכמה חשבונות) עם אותה בידוד נתונים מהימן, כמו במכשירי Android עם כמה משתמשים, משתמש נספר כמכשיר.
  • אם תוקף האימות של החשבון במכשיר המחובר יפוג או אם האימות יבוטל, צריך להפסיק את הסטרימינג ולנתק את המכשיר המחובר באופן מיידי.
  • אם במכשיר המקור נעשה שימוש ב-LSKF, כשהמסך נעול, האפליקציה לא יכולה להעביר סטרימינג של אפליקציות למכשיר מחובר, אלא אם למכשיר הזה יש מסך נעילה והוא לא נעול.
  • אם האדמין מנהל את המכשיר, האפליקציה חייבת לפעול בהתאם למדיניות שהאדמין הגדיר לגבי הפעלה או השבתה של סטרימינג למכשירים בקרבת מקום (לדוגמה, באמצעות ההגדרות של DevicePolicyManager ב-Android).
  • צריך לוודא שהמסך המרוחק וכל המקורות של אירועי קלט מרחוק שייכים לאותו מכשיר לוגי (למשל, מסך מרוחק ומקלדת מחוברת) מנקודת המבט של המשתמש, ושהאירועים מנותבים בהתאם.
  • המשתמש צריך להיות מסוגל לסיים את הסטרימינג מהמכשיר המקומי, למשל באמצעות לחצן בהתראה קבועה. ההתנהגות הזו מוגבלת על ידי מסך הנעילה, אם מוגדרת בטלפון נעילת מסך.
  • חייב להופיע סימן במכשיר המקור כשהסטרימינג מתבצע במכשיר אחר, כמו סמל בשורת הסטטוס או התראה קבועה.
WALLET אחת מהאפשרויות הבאות:
  • האפליקציה כוללת שירות NFC APDU שרושם באופן סטטי לפחות AID אחד בקטגוריה PAYMENT.
  • האפליקציה מיישמת מופע של QuickAccessWalletService.