מכשירים ייעודיים

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

ניהול הקצאות (Provisioning)

הקצאת הרשאות עם מגע מינימלי ב-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);

    שימוש בממשק המשתמש במכשיר

    משתמשים באחת מהשיטות הבאות כדי להציג במסך את תיבת הדו-שיח לבחירת מרכז האפליקציות:

    שימוש בתנועת החלקה כלפי מעלה בהגדרות

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

    שימוש בכוונת רכישה באפליקציה

    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

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

    מצב משימות נעולות

    מצב נעילת משימות מאפשר ליצור רשימה של חבילות שמותר להפעיל במכשיר.

    .

    הגדרת חבילות מותרות

    בקטע הקוד הבא מוצג אופן ההגדרה של רשימת החבילות:

    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();
    }