Dedykowane urządzenia

Google Glass zazwyczaj obsługuje się jako dedykowane urządzenie z niewielką liczbą aplikacji, które tworzą rozwiązania dla firm. Ten przewodnik pokazuje, jak skonfigurować Google Glass jako urządzenie dedykowane.

Udostępniam

Obsługa administracyjna metodą zero-touch w Glass Enterprise Edition 2 instaluje i konfiguruje aplikację administratora pochodzącą z metadanych podanych w kodzie QR. Ta aplikacja może korzystać z interfejsu API DevicePolicyManager, który jest preferowaną metodą zarządzania konfiguracją urządzenia.

Zastąp program uruchamiający

Aby skonfigurować dedykowane urządzenie, musisz zastąpić aplikację z programu uruchamiającym. Dzięki temu dedykowana aplikacja zostanie uruchomiona automatycznie po ponownym uruchomieniu urządzenia. Poniżej znajdziesz omówienie zadań związanych z przygotowaniem aplikacji i ustawieniem jej jako programu uruchamiającego:

  • Filtr intencji użytkownika
  • Ustawianie nowego programu uruchamiającego
  • Filtr intencji użytkownika

    Do głównej aktywności 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 metodę addPersistentpreferredActivity() w aplikacji administratora. Działa to tylko wtedy, gdy urządzenie zostało już udostępnione. W przypadku urządzeń, które nie mają obsługi administracyjnej, wybierz nowy program uruchamiający w interfejsie użytkownika urządzenia.

    Dodaj stałą aktywność preferowaną

    Ta metoda pozwala ustawić dany componentName jako program uruchamiający na urządzeniu, bez interakcji z urządzeniem.

    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 z aplikacjami uruchamiającymi, użyj jednej z tych metod:

    Przesuwanie palcem w górę w ustawieniach

    Przesuń wstecz do ekranu głównego, aby wyświetlić ekran podsumowania ustawień. Następnie dotknij, aby otworzyć ekran ustawień. Przesuń w górę, aby wyświetlić okno.

    Używanie 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ń w górę i w lewo po touchpadzie, aby wybrać preferowaną aplikację i kliknij, aby potwierdzić. Użyj tej samej metody, aby wybrać przycisk "Zawsze".

    Tryb blokowania zadań

    Tryb zadania blokady pozwala utworzyć listę pakietów, które mogą działać na urządzeniu.

    Ustaw dozwolone pakiety

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

    Uruchom tryb blokowania zadań

    Tryb blokowania może zostać uruchomiony przez aktywność aplikacji. Oto, jak możesz to zrobić:

    Kotlin

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

    Java

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