סעיף זה מתאר כיצד להפעיל ולאמת את תכונות ניהול ההתקנים הנדרשות להכנת התקנים לפרופילים מנוהלים. זה מכסה גם מקרים של משתמשים בעלי מכשיר החיוניים בסביבה ארגונית.
בנוסף לקוד AOSP, מכשיר דורש את הרכיבים הבאים כדי לתפקד עם פרופילים מנוהלים.
דרישות כלליות
מכשירים המתכוונים לתמוך בניהול מכשירים חייבים לעמוד בדרישות הכלליות הבאות.
ערכי HAL תרמיים
אנדרואיד 7.0 ואילך כולל תמיכה ב-HardwarePropertiesManager API, ממשק API לניטור מכשירים ודיווח תקינות המאפשר ליישומים לבצע שאילתות על מצב החומרה של המכשיר. ממשק API זה נחשף דרך android.os.HardwarePropertiesManager
ומבצע קריאות דרך HardwarePropertiesManagerService
ל-HAL התרמי של החומרה ( hardware/libhardware/include/hardware/thermal.h
). זהו API מוגן, כלומר רק יישומי Device Policy Controller (DPC) של בעלי מכשיר/פרופיל וה- VrListenerService
הנוכחי יכולים לקרוא לזה.
כדי לתמוך ב-HardwarePropertiesManager API, יישום ה-HAL התרמי של המכשיר חייב להיות מסוגל לדווח על הערכים הבאים:
ערך | סולם דיווח | מאפשר |
---|---|---|
טמפרטורה של [CPU|GPU|סוללה|עור מכשיר] | טמפרטורת הרכיב במעלות צלזיוס | אפליקציות יכולות לבדוק את טמפרטורות המכשיר וטמפרטורות מצערת/כיבוי של רכיבים |
זמני פעיל/סך הכל מופעלים במעבד | זמן באלפיות שניות | אפליקציות יכולות לבדוק את השימוש במעבד לכל ליבה |
מהירות מאוורר | סל"ד | אפליקציות יכולות לבדוק את מהירות המאוורר |
הטמעות צריכות לטפל בצורה נכונה במצבי דיווח של ערכי דיווח כאשר ליבה (או GPU, סוללה, מאוורר) עוברת לא מקוון או מחוברת/מנותקת.
הפעלת ניהול מכשירים
כדי לאפשר ניהול מכשירים, ודא uses-features
הבאות מוצהרות:
-
android.software.device_admin
-
android.software.managed_users
(התכונה מוצהרת אם ורק אם למכשיר יש לפחות 2 GB של זיכרון.)
כדי לאשר ערכי uses-feature
אלה הוכרזו במכשיר, הפעל: adb shell pm list features
.
אפליקציות חיוניות בלבד
כברירת מחדל, רק יישומים החיוניים להפעלה נכונה של הפרופיל מופעלים כחלק מהקצאת מכשיר מנוהל. זכור, כל המופעים לדוגמה של קבצי _managed_profile.xml
להלן רלוונטיים רק אם הוכרזה android.software.managed_users
. יצרני OEM חייבים לוודא שלפרופיל או למכשיר המנוהל יש את כל היישומים הנדרשים על ידי שינוי:
vendor_required_apps_managed_profile.xml vendor_required_apps_managed_device.xml vendor_disallowed_apps_managed_profile.xml vendor_disallowed_apps_managed_device.xml /* * The following are for Android 9 and higher only */ vendor_required_apps_managed_user.xml vendor_disallowed_apps_managed_user.xml
אפליקציות נדרשות ואסורות למשתמשים מנוהלים מוחלים על משתמשים משניים שנוצרו באמצעות DevicePolicyManager#createAndManageUser
.
דוגמאות ממכשיר Nexus
אנדרואיד 8.x ומעלה
pacakages/apps/ManagedProvisioning/res/values/vendor_required_apps_managed_device.xml
אנדרואיד 9 ומעלה
frameworks/base/core/res/res/values/vendor_required_apps_managed_device.xml
<resources> <!-- A list of apps to be retained on the managed device --> <string-array name="vendor_required_apps_managed_device"> <item>com.android.vending</item> <!--Google Play --> <item>com.google.android.gms</item> <!--Required by Play --> <item>com.google.android.contacts</item> <!--Google or OEM Contacts--> <item>com.google.android.googlequicksearchbox</item> <!--Google Launcher --> <item>com.google.android.launcher</item> <!--Google Launcher or OEM Launcher --> <item>com.google.android.dialer</item> <!--Google or OEM dialer to enable making phone calls --> </string-array> </resources>
אנדרואיד 8.x ומעלה
packages/apps/ManagedProvisioning/res/values/vendor_required_apps_managed_profile.xml
אנדרואיד 9 ומעלה
frameworks/base/core/res/res/values/vendor_required_apps_managed_profile.xml
<resources> <!-- A list of apps to be retained in the managed profile. This includes any Google experience apps required. --> <string-array name="vendor_required_apps_managed_profile"> <item>com.android.vending</item> <!-- Google Play --> <item>com.google.android.gms</item> <!-- Required by Play --> <item>com.google.android.contacts</item> <!-- Google or OEM Contacts --> </string-array> </resources>
דרישות המשגר
עליך לעדכן את ה-Launcher כדי לתמוך ביישומי תג עם תג הסמל (המסופק ב-AOSP כדי לייצג את היישומים המנוהלים) ורכיבי ממשק משתמש אחרים של התג, כגון עדונים והתראות. אם אתה משתמש ב- Launcher3 ב-AOSP ללא שינויים, סביר להניח שאתה כבר תומך בתכונת התגים הזו.
דרישות NFC
מכשירים עם NFC חייבים להפעיל NFC במהלך החוויה היוצאת מהקופסה (כלומר, אשף ההגדרה) ולהיות מוגדרים לקבל כוונות הקצאה מנוהלות:
packages/apps/Nfc/res/values/provisioning.xml
<bool name="enable_nfc_provisioning">true</bool> <item>application/com.android.managedprovisioning</item>
דרישות הגדרה
מכשירים הכוללים חוויה מחוץ לקופסה (כלומר, אשף ההגדרה) צריכים ליישם הקצאת בעלי מכשיר. כאשר חווית היציאה מהקופסה נפתחת, עליו לבדוק אם תהליך אחר (כגון הקצאת בעלי מכשיר) כבר סיים את הגדרת המשתמש, ואם כן, עליו לירות כוונה ביתית ולסיים את ההגדרה. כוונה זו נתפסת על ידי אפליקציית ההקצאה, שמעבירה את השליטה לבעל המכשיר החדש שהוגדר.
כדי לעמוד בדרישות ההגדרה, הוסף את הקוד הבא לפעילות העיקרית של הגדרת המכשיר:
@Override protected void onStart() { super.onStart(); // When returning to a setup wizard activity, check to see if another setup process // has intervened and, if so, complete an orderly exit boolean completed = Settings.Secure.getInt(getContentResolver(), Settings.Secure.USER_SETUP_COMPLETE, 0) != 0; if (completed) { startActivity(new Intent(Intent.ACTION_MAIN, null) .addCategory(Intent.CATEGORY_HOME) .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED)); finish(); } ... }