專用裝置

Glass 通常可以設為專用裝置,搭配少數包含企業解決方案的應用程式。下列指南說明如何將 Glass 設為專用裝置。

佈建中

Glass Enterprise Edition 2 的低觸控佈建功能會安裝及設定管理員應用程式,並下載從 QR 圖碼提供的中繼資料。這個應用程式可利用 DevicePolicyManager API,這是管理裝置設定的首選方法。

取代啟動器

如要設定專用裝置,您必須替換啟動器應用程式。這樣可以確保在裝置重新啟動後,應用程式會自動啟動。下列內容概略說明在準備應用程式並將其設為啟動器時必須完成的工作:

  • 活動意圖篩選器
  • 設定新的啟動器
  • 活動意圖篩選器

    您必須在應用程式資訊清單的主要活動中新增下列類別:

    <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()。前提是該裝置已佈建完畢。對於未佈建的裝置,請在裝置的 UI 中選取新的啟動器。

    新增持續偏好的活動

    這個方法可讓您將指定的 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);
    

    在裝置上使用 UI

    請使用下列其中一種方法,在螢幕上顯示啟動器選項對話方塊:

    在設定中使用向上滑動手勢

    在主畫面上向後滑動,即可顯示設定摘要畫面。然後輕觸輸入進入設定畫面。向上滑動即可顯示對話方塊。

    在應用程式中使用意圖

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