專用裝置

Glass 通常會設定為專用裝置,並搭配少數應用程式,組成企業解決方案。以下指南說明如何將 Glass 設為專用裝置。

佈建中

低接觸式佈建 在 Glass Enterprise Edition 2 上安裝及設定管理員應用程式,該應用程式是從 QR code 中提供的中繼資料下載而來。這個應用程式可運用 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);

    使用裝置上的使用者介面

    使用下列其中一種方法,在畫面上顯示啟動器選取對話方塊:

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

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

    在應用程式中使用意圖

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