לרוב, Glass מוגדר כמכשיר ייעודי עם מספר קטן של אפליקציות שמורכבות מפתרון ארגוני. במדריך הבא נסביר איך להגדיר את Glass כמכשיר ייעודי.
הקצאת הרשאות ידנית
ניהול תצורה בנגיעה נמוכה בהתקנות של Glass Enterprise Edition 2, ומגדיר אפליקציה של מנהל מערכת שהורדת מהמטא-נתונים שסופקו בקוד QR. האפליקציה הזו יכולה להשתמש ב-API DevicePolicyManager שהיא השיטה המועדפת לניהול תצורת המכשיר.
החלפת מרכז האפליקציות
כדי להגדיר מכשיר ייעודי, צריך להחליף את אפליקציית מרכז האפליקציות. כך ניתן להבטיח שהאפליקציה הייעודית תופעל אוטומטית לאחר ההפעלה מחדש של המכשיר. התוכן הבא מפרט את המשימות הכרוכות בהכנת אפליקציה ובהגדרתה כמפעיל:
- מסנן Intent של פעילות
- הגדרת מרכז האפליקציות החדש
מסנן Intent של פעילות
עליך להוסיף את הקטגוריות הבאות לפעילות הראשית במניפסט של האפליקציה שלך:
<intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.HOME"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter>
הגדרת מפעיל חדש
כדי להגדיר מרכז אפליקציות חדש, מבצעים את הפעולות הבאות: addPersistentPreferredActivity() מאפליקציית האדמין. האפשרות הזו פועלת רק אם כבר הוגדר ניהול תצורה במכשיר. למכשירים ללא ניהול תצורה, בוחרים מרכז אפליקציות חדש דרך ממשק המשתמש במכשיר.
הוספת פעילות מועדפת קבועה
כך אפשר להגדיר את componentName
כמפעיל האפליקציות של המכשיר, בלי לקיים אינטראקציה עם המכשיר.
Kotlin
val filter = IntentFilter(Intent.ACTION_MAIN) filter.addCategory(Intent.CATEGORY_HOME) filter.addCategory(Intent.CATEGORY_DEFAULT) val componentName = ComponentName(PACKAGE_NAME, CLASS_NAME) val devicePolicyManager: DevicePolicyManager = context.getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager val adminName = getComponentName(context) devicePolicyManager.addPersistentPreferredActivity(adminName, filter, componentName)
Java
final IntentFilter filter = new IntentFilter(Intent.ACTION_MAIN); filter.addCategory(Intent.CATEGORY_HOME); filter.addCategory(Intent.CATEGORY_DEFAULT); final ComponentName componentName = new ComponentName(PACKAGE_NAME, CLASS_NAME); DevicePolicyManager devicePolicyManager = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE); final adminName = getComponentName(context); devicePolicyManager.addPersistentPreferredActivity(adminName, filter, componentName);
שימוש בממשק המשתמש במכשיר
השתמש באחת מהשיטות הבאות כדי להציג תיבת דו-שיח לבחירת מפעיל במסך:
שימוש בתנועת החלקה למעלה בהגדרות
מחליקים אחורה במסך הבית כדי להציג מסך סיכום הגדרות. לאחר מכן, מקישים כדי להיכנס למסך ההגדרות. מחליקים למעלה כדי להציג את תיבת הדו-שיח.
שימוש ב-Intent באפליקציה
Kotlin
val intent = Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); startActivity(intent);
Java
final Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); startActivity(intent);
שימוש בפקודת adb
adb shell am start -a android.intent.action.MAIN -c android.intent.category.HOME
יש להחליק קדימה ואחורה על לוח המגע כדי לבחור את האפליקציה המועדפת ולהקיש על כדי לאשר. משתמשים באותה שיטה לבחירת הלחצן "תמיד&ציטוט;
מצב משימות נעולות (lock task mode)
מצב משימות נעולות מאפשר ליצור רשימה של חבילות המורשים לפעול במכשיר.
הגדרת חבילות מותרות
בקטע הבא מוסבר איך להגדיר את רשימת החבילות:
Kotlin
private val KIOSK_PACKAGE = "com.example.kiosk" private val PLAYER_PACKAGE = "com.example.player" private val APP_PACKAGES = arrayOf(KIOSK_PACKAGE, PLAYER_PACKAGE) val devicePolicyManager: DevicePolicyManager = context.getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager val adminName = getComponentName(context) devicePolicyManager.setLockTaskPackages(adminName, APP_PACKAGES)
Java
private static final String KIOSK_PACKAGE = "com.example.kiosk"; private static final String PLAYER_PACKAGE = "com.example.player"; private static final String[] APP_PACKAGES = {KIOSK_PACKAGE, PLAYER_PACKAGE}; final DevicePolicyManager devicePolicyManager = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE); final ComponentName adminName = getComponentName(context); devicePolicyManager.setLockTaskPackages(adminName, APP_PACKAGES);
הפעלה של מצב נעילת המשימה
מצב הפעלה יכול להיות מופעל על ידי הפעילות של האפליקציה. בקטע הבא מוסבר איך אפשר לעשות זאת:
Kotlin
override fun onResume() { super.onResume() activity.startLockTask() }
Java
@Override public void onResume() { super.onResume(); getActivity().startLockTask(); }