במסמכי העזרה בנושא שירותים שפועלים בחזית מתוארת ההתנהגות הנוכחית של שירותים שפועלים בחזית ב-Android. במסמכי התיעוד מפורטות שיטות מומלצות לרוב האפליקציות, גם אם הן מטרגטות את הגרסה העדכנית ביותר של Android וגם אם לא.
בדף הזה מתוארים חלק מהשינויים החשובים ביותר האחרונים בשירותי חזית, וההשלכות על אפליקציות שלא מטרגטות את הגרסה העדכנית ביותר של פלטפורמת Android. במקרים רבים, שיטות מומלצות שהיו אופציונליות לאפליקציות שמטרגטות רמות API נמוכות יותר הופכות להיות חובה לאפליקציות שמטרגטות רמות API גבוהות יותר.
Android 15 (רמת API 35)
הדרישות הבאות חלות על אפליקציות שמטרגטות רמת API 35 ואילך:
- יש הגבלות חדשות על משך הזמן ששירות
dataSync
שפועל בחזית יכול לפעול. המגבלות האלה מתוארות בקטע התנהגות של שירות שפועל בחזית כשהזמן פג. הגבלות דומות חלות על סוג השירותmediaProcessing
(חדש ב-Android 15) שפועל בחזית. - אסור יותר לשירותים שפועלים בחזית מסוג
BOOT_COMPLETED
להפעיל שירותים מסוימים שפועלים בחזית. - אפליקציות עם ההרשאה
SYSTEM_ALERT_WINDOW
יכולות להפעיל שירותים שפועלים בחזית מהרקע רק אם יש להן כרגע חלון שכבת-על גלוי (או אם הן עומדות באחד מהפטורים האחרים מההגבלות על הפעלה ברקע). בעבר, הפטור לאפליקציות האלה היה רחב יותר.
Android 14 (רמת API 34)
הדרישות הבאות חלות על אפליקציות שמטרגטות לרמת API 34 ומעלה:
- עליכם להצהיר על כל השירותים שפועלים בחזית עם סוגי השירותים שלהם.
- אפליקציות צריכות לבקש את סוג ההרשאה המתאים לסוג העבודה שהשירות שפועל בחזית יבצע. לכל סוג של שירות שפועל בחזית יש סוג הרשאה תואם. לדוגמה, אם אפליקציה מפעילה שירות שפועל בחזית שמשתמש במצלמה, צריך לבקש גם את ההרשאות
FOREGROUND_SERVICE
וגם את ההרשאותFOREGROUND_SERVICE_CAMERA
. אם אפליקציה מטרגטת לרמת API 34 ואילך ולא מבקשת את ההרשאה הספציפית המתאימה, המערכת תשליך את השגיאהSecurityException
.
Android 12 (רמת API 31)
הדרישות הבאות חלות על אפליקציות שמטרגטות לרמת API 31 ואילך:
- אסור לאפליקציות להפעיל שירותים שפועלים בחזית בזמן שהאפליקציה נמצאת ברקע, מלבד כמה יוצאים מן הכלל. למידע נוסף ולמידע על החריגים לכלל הזה, ראו הגבלות על הפעלת שירות בחזית מהרקע.
Android 11 (רמת API 30)
הדרישות הבאות חלות על אפליקציות שמטורגטות לרמת API 30 ואילך:
- אם השירותים שפועלים בחזית של האפליקציה משתמשים במצלמה או במיקרופון, האפליקציה צריכה להצהיר על השירות עם סוג השירות
camera
אוmicrophone
, בהתאמה.
Android 10 (רמת API 29)
הדרישות הבאות חלות על אפליקציות שמטרגטות לרמת API 29 ואילך:
- אם השירותים שפועלים בחזית של האפליקציה משתמשים במידע על המיקום, האפליקציה צריכה להצהיר על השירות עם סוג השירות
location
.
Android 9 (רמת API 28)
ב-Android 9 נוספה ההרשאה FOREGROUND_SERVICE
. אפליקציות שפועלות ב-Android 9 ומשתמשות בשירותים שפועלים בחזית חייבות לקבל את ההרשאה הזו.
אם אפליקציה שמטרגטת רמת API 28 ואילך תנסה ליצור שירות שפועל בחזית בלי לבקש את ההרשאה FOREGROUND_SERVICE
, המערכת תשליך הודעת שגיאה מסוג SecurityException
.