Zweckbestimmte Geräte

Glass wird in der Regel als dediziertes Gerät mit einer kleinen Anzahl von Anwendungen konfiguriert, die eine Unternehmenslösung bilden. In der folgenden Anleitung wird beschrieben, wie Sie Glass als dediziertes Gerät einrichten.

Wird bereitgestellt

Bei der Low-Touch-Bereitstellung auf Glass Enterprise Edition 2 wird eine Administratoranwendung installiert und konfiguriert, die aus den in einem QR-Code bereitgestellten Metadaten heruntergeladen wird. Diese Anwendung kann die DevicePolicyManager API nutzen, die die bevorzugte Methode zum Verwalten der Gerätekonfiguration ist.

Launcher ersetzen

Wenn Sie ein dediziertes Gerät einrichten möchten, müssen Sie die Launcher-Anwendung ersetzen. So wird sichergestellt, dass die entsprechende Anwendung nach dem Neustart des Geräts automatisch gestartet wird. Im Folgenden werden die Aufgaben beschrieben, die zum Vorbereiten einer Anwendung und zum Festlegen als Launcher erforderlich sind:

  • Intent-Filter für Aktivitäten
  • Neuen Launcher festlegen
  • Intent-Filter für Aktivitäten

    Sie müssen die folgenden Kategorien der Hauptaktivität im Manifest Ihrer Anwendung hinzufügen:

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

    Neuen Launcher festlegen

    Rufen Sie addPersistentPreferredActivity() aus der Administratoranwendung auf, um einen neuen Launcher festzulegen. Das funktioniert nur, wenn das Gerät bereits bereitgestellt wurde. Wählen Sie für nicht bereitgestellte Geräte in der Benutzeroberfläche auf dem Gerät einen neuen Launcher aus.

    Dauerhafte bevorzugte Aktivität hinzufügen

    Mit dieser Methode können Sie eine bestimmte componentName als Launcher des Geräts festlegen, ohne mit dem Gerät interagieren zu müssen.

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

    Benutzeroberfläche auf dem Gerät verwenden

    Verwenden Sie eine der folgenden Methoden, um ein Dialogfeld zur Auswahl des Launchers auf dem Bildschirm anzuzeigen:

    Touch-Geste „Nach oben wischen“ in den Einstellungen verwenden

    Wische auf dem Startbildschirm nach hinten, um eine Zusammenfassung der Einstellungen aufzurufen. Tippe dann, um die Einstellungen aufzurufen. Wischen Sie nach oben, um das Dialogfeld aufzurufen.

    Intent in der Anwendung verwenden

    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);
    Mit dem adb-Befehl

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

    Wische auf dem Touchpad vorwärts und rückwärts, um die gewünschte App auszuwählen, und tippe zur Bestätigung. Wählen Sie die Schaltfläche „Immer“ mit derselben Methode aus.

    Aufgabenmodus sperren

    Im Modus „Aufgabe sperren“ können Sie eine Liste mit Paketen erstellen, die auf dem Gerät ausgeführt werden dürfen.

    Zulässige Pakete festlegen

    Das folgende Snippet zeigt, wie Sie die Liste der Pakete festlegen:

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

    Modus „Gesperrte Aufgabe“ starten

    Der Modus zum Sperren von Aufgaben kann über die Aktivität der Anwendung gestartet werden. Das folgende Snippet zeigt, wie das geht:

    Kotlin

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

    Java

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