Dedykowane urządzenia

Urządzenie Glass jest zwykle skonfigurowane do użytku jako urządzenie dedykowane z niewielką liczbą aplikacji, które składają się na rozwiązanie dla przedsiębiorstw. Z tego przewodnika dowiesz się, jak skonfigurować Glass jako urządzenie dedykowane.

Udostępniam

Automatyczna konfiguracja na Glass Enterprise Edition 2 instaluje i konfiguruje aplikację administratora, która jest pobierana z metadanych podanych w kodzie QR. Ta aplikacja może korzystać z interfejsu DevicePolicyManager, który jest preferowaną metodą zarządzania konfiguracją urządzenia.

Zastępowanie programu uruchamiającego

Aby skonfigurować urządzenie dedykowane, musisz zastąpić aplikację uruchamiającą. Dzięki temu po ponownym uruchomieniu urządzenia dedykowana aplikacja zostanie uruchomiona automatycznie. Poniżej opisujemy czynności związane z przygotowaniem aplikacji i ustawieniem jej jako programu uruchamiającego:

  • Filtr intencji działania
  • Ustawianie nowego programu uruchamiającego
  • Filtr intencji działania

    Do głównego działania w pliku manifestu aplikacji musisz dodać te kategorie:

    <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>

    Ustawianie nowego programu uruchamiającego

    Aby ustawić nowy program uruchamiający, wywołaj funkcję addPersistentPreferredActivity() z aplikacji administracyjnej. Działa to tylko wtedy, gdy urządzenie zostało już skonfigurowane. W przypadku urządzeń nieprzygotowanych wybierz nowy program uruchamiający w interfejsie urządzenia.

    Dodawanie trwałej preferowanej aktywności

    Ta metoda umożliwia ustawienie danej componentName jako programu uruchamiającego na urządzeniu bez interakcji z nim.

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

    Korzystanie z interfejsu na urządzeniu

    Aby wyświetlić na ekranie okno wyboru programu uruchamiającego, skorzystaj z jednej z tych metod:

    Używanie gestu dotykowego przesuwania w ustawieniach

    Przesuń palcem do tyłu na ekranie głównym, aby wyświetlić ekran podsumowania ustawień. Następnie kliknij, aby otworzyć ekran ustawień. Przesuń palcem w górę, aby wyświetlić okno.

    Wykorzystanie intencji w aplikacji

    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);
    Korzystanie z polecenia adb

    adb shell am start -a android.intent.action.MAIN -c android.intent.category.HOME

    Przesuń palcem po touchpadzie do przodu lub do tyłu, aby wybrać preferowaną aplikację, a następnie kliknij, aby potwierdzić. Wybierz przycisk „Zawsze” w ten sam sposób.

    Tryb blokowania zadań

    Tryb blokowania zadań umożliwia utworzenie listy pakietów, które mogą być uruchamiane na urządzeniu.

    Ustawianie dozwolonych pakietów

    Poniższy fragment kodu pokazuje, jak ustawić listę pakietów:

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

    Włączanie trybu blokowania zadań

    Tryb zablokowanych zadań może zostać uruchomiony przez aktywność aplikacji. Poniższy fragment kodu pokazuje, jak to zrobić:

    Kotlin

    override fun onResume() {
        super.onResume()
        activity.startLockTask()
    }

    Java

    @Override
    public void onResume() {
      super.onResume();
      getActivity().startLockTask();
    }