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

לרוב, 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();
    }