<service>

תחביר:
<service android:description="string resource"
         android:directBootAware=["true" | "false"]
         android:enabled=["true" | "false"]
         android:exported=["true" | "false"]
         android:foregroundServiceType=["camera" | "connectedDevice" |
                                        "dataSync" | "health" | "location" |
                                        "mediaPlayback" | "mediaProjection" |
                                        "microphone" | "phoneCall" |
                                        "remoteMessaging" | "shortService" |
                                        "specialUse" | "systemExempted"]
         android:icon="drawable resource"
         android:isolatedProcess=["true" | "false"]
         android:label="string resource"
         android:name="string"
         android:permission="string"
         android:process="string" >
    ...
</service>
בתוך:
<application>
יכול להכיל:
<intent-filter>
<meta-data>
תיאור:
מצהירה על שירות, תת-מחלקה Service, כמחלקה אחת של רכיבי האפליקציה. בשונה מפעילויות, בשירותים אין ממשק משתמש חזותי. הם משמשים להטמעת רקע לאורך זמן פעולות או ממשק API לתקשורת עשירה, שהלקוח יכול לקרוא לו תרגום מכונה.

כל השירותים חייבים להיות מיוצגים על ידי רכיבי <service> ב- את קובץ המניפסט. אתרים שלא הוצהרו עליהם, לא מופיעים. על ידי המערכת והם אף פעם לא יופעלו.

הערה: ב-Android 8.0 (רמת API 26) ואילך, מגבלות המערכת את הפעולות שהאפליקציה יכולה לעשות בזמן שהיא פועלת ברקע. עבור לקבלת מידע נוסף, קראו את המדריכים מגבלות ביצוע ברקע וגם מיקום ברקע מגבלות.

:
android:description
מחרוזת שמתארת את השירות, שאנשים יכולים לקרוא. התיאור מוגדר בתור הפניה למשאב מסוג מחרוזת, כדי שהוא יהיה מותאם לשוק המקומי כמו מחרוזות אחרות בממשק המשתמש.
android:directBootAware

אם לשירות יש מוּדעוּת ל-Direct-Boot, כלומר: האם היא יכולה לפעול לפני שהמשתמש מבטל את נעילת המכשיר.

הערה: במהלך הפעלה ישירה, שירות ב- האפליקציה יכולה לגשת רק לנתונים שמאוחסנים אחסון מוגן במכשיר.

ערך ברירת המחדל הוא "false".

android:enabled
האם המערכת יכולה ליצור מופע של השירות. זו "true" אם אפשר, ו-"false" אם לא. ערך ברירת המחדל "true".

לרכיב <application> יש ערך משלו מאפיין enabled שחל על כל הפריטים של רכיבים שונים, כולל שירותים. <application> ו-<service> שניהם חייבים להיות "true", כי שניהם כברירת מחדל כדי שהשירות יופעל. אם אחד מהם הוא "false", השירות מושבת ולא ניתן ליצור ממנו מופע.

android:exported
אם רכיבים של אפליקציות אחרות יכולים להפעיל את השירות או ליצור איתו אינטראקציה. השם הוא "true" אם הוא יכול. "false" אם לא. כאשר הערך הוא "false", רק רכיבים של אותה אפליקציה או אותה אפליקציה בעלי אותו מזהה משתמש יכולים להפעיל את השירות או לקשר אליו.

ערך ברירת המחדל תלוי בשאלה אם השירות מכיל מסנני Intent. המשמעות של היעדר מסננים כלשהם היא שניתן להפעיל אותו רק על ידי ציון את השם המדויק של המחלקה שלו. הכוונה היא שהשירות מיועד רק לשימוש פנימי באפליקציה, מכיוון שאחרים לא יודעים את שם המחלקה. אז בתוך במקרה הזה, ערך ברירת המחדל הוא "false". מצד שני, נוכחות של מסנן אחד לפחות מרמזת על כך שהשירות מיועד לשימוש חיצוני, ולכן ערך ברירת המחדל הוא "true".

המאפיין הזה הוא לא הדרך היחידה להגביל את החשיפה של השירות לגורמים אחרים תרגום מכונה. אפשר גם להשתמש בהרשאה כדי להגביל את הישויות החיצוניות יכול לקיים אינטראקציה עם השירות. לצפייה בpermission .

android:foregroundServiceType

מציין שהשירות שירות שפועל בחזית שעומד והוא תרחיש לדוגמה ספציפי. לדוגמה, סוג שירות שפועל בחזית "location" מציין שאפליקציה מקבלת את נתוני המכשיר הנוכחיים מיקום, בדרך כלל המשך פעולה ביוזמת המשתמש שקשורה למיקום המכשיר.

אפשר להקצות כמה סוגים של שירותים שפועלים בחזית לכל סוג של שירות שפועל בחזית לאחר השיפור.

android:icon
סמל שמייצג את השירות. המאפיין הזה מוגדר בתור הפניה למשאב שניתן להזזה שמכיל את הגדרת התמונה. אם היא לא מוגדרת, הסמל שצוין עבור האפליקציה משמש במקום זאת, לצפייה ב<application> המאפיין icon של הרכיב.

סמל השירות, אם הוא מוגדר כאן או על ידי רכיב <application>, הוא גם סמל ברירת מחדל לכל מסנני Intent של השירות. לצפייה של רכיב <intent-filter> icon.

android:isolatedProcess
אם הוא מוגדר לערך "true", השירות הזה יפעל בתהליך מיוחד שמבודד לשאר המערכת ואין לה הרשאות משלה. התקשורת היחידה איתו היא דרך Service API, ומתחילה.
android:label
שם השירות קריא למשתמשים. אם המאפיין הזה לא מוגדר, התווית שהוגדרה עבור האפליקציה בכללותה נעשה בו שימוש. הצגת הרכיב <application> label.

התווית של השירות, אם הוגדרה כאן או רכיב <application>, הוא גם תווית ברירת מחדל לכל מסנני Intent של השירות. לצפייה של רכיב <intent-filter> label.

התווית מוגדרת כהפניה למשאב של מחרוזת, כך אפשר להתאים אותו לשוק המקומי כמו מחרוזות אחרות בממשק המשתמש. עם זאת, לנוחיותכם במהלך הפיתוח של האפליקציה, אפשר להגדיר אותו גם כמחרוזת גולמית.

android:name
השם של מחלקה המשנה Service שמטמיעה את השירות. זהו שם מחלקה מלא, כגון "com.example.project.RoomService" אבל, בקיצור, אם התו הראשון של השם הוא נקודה, למשל ".RoomService", הוא מצורף לשם החבילה שצוין רכיב <manifest>.

לאחר פרסום האפליקציה, אין לשנות את השם הזה, אלא אם מגדירים android:exported="false".

אין ברירת מחדל. צריך לציין את השם.

android:permission
שם ההרשאה שנחוצה לישות כדי להפעיל את השירות או לקשר אליו. אם מתקשר של startService(), bindService(), או stopService() אם הוא לא מקבל את ההרשאה הזו, השיטה לא עובדת אובייקט Intent לא נמסר לשירות.

אם המאפיין הזה לא מוגדר, ההרשאה שהוגדרה על ידי של רכיב <application> permission חל על השירות. אם לא הוגדר אף מאפיין, השירות לא מוגן באמצעות הרשאה.

למידע נוסף על הרשאות עיינו במאמר הרשאות בסקירה הכללית של קובץ המניפסט של האפליקציה. הנחיות אבטחה.

android:process
שם התהליך שבו השירות פועל. בדרך כלל, כל הרכיבים של אפליקציה שפועלים בתהליך ברירת המחדל שנוצר עבור תרגום מכונה. יש לה שם זהה לחבילת האפליקציה. של רכיב <application> process יכול להגדיר ברירת מחדל לכל הרכיבים. אבל רכיב יכול לשנות את ברירת המחדל עם מאפיין process משלו, שמאפשר לפזר בכמה תהליכים.

אם השם שהוקצה למאפיין הזה מתחיל בנקודתיים (:), בתהליך פרטי לאפליקציה, נוצר כאשר יש בו צורך השירות פועל בתהליך הזה.

אם שם התהליך מתחיל בתו קטן, השירות יפעל בתהליך גלובלי בשם זה, בתנאי שיש לו הרשאה לעשות זאת. כך אפשר לרכיבים באפליקציות שונות לשתף תהליך, וכך לצמצם שימוש במשאבים.

למידע נוסף:
<application>
<activity>
הושקו ב:
רמת API 1