Zweckbestimmte Geräte

Glass ist normalerweise so konfiguriert, dass es als dediziertes Gerät mit einer kleinen Anzahl von Anwendungen verwendet wird, die eine Unternehmenslösung bilden. Im folgenden Leitfaden erfahren Sie, wie Sie Glass als eigenes Gerät einrichten.

Wird bereitgestellt

Bei der einfachen Nutzerverwaltung in 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 bevorzugte Methode zum Verwalten der Gerätekonfiguration.

Launcher ersetzen

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

  • Aktivitäts-Intent-Filter
  • Neuen Launcher einrichten
  • Filter für Intent-Aktivität

    Sie müssen der Hauptaktivität im Manifest Ihrer App die folgenden Kategorien 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 einrichten

    Rufen Sie zum Festlegen eines neuen Launchers addPersistentPreferredActivity() aus der Administratoranwendung auf. Dies funktioniert nur, wenn das Gerät bereits bereitgestellt wurde. Wählen Sie für nicht bereitgestellte Geräte in der UI einen neuen Launcher auf dem Gerät aus.

    Persistente bevorzugte Aktivität hinzufügen

    Mit dieser Methode kannst du einen bestimmten componentName als Launcher des Geräts festlegen, ohne mit dem Gerät zu interagieren.

    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 auf dem Gerät verwenden

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

    Wischgeste in den Einstellungen wird verwendet

    Wische auf dem Startbildschirm rückwärts, um die Einstellungsübersicht aufzurufen. Tippe dann, um den Bildschirm mit den Einstellungen aufzurufen. Wischen Sie nach oben, um das Dialogfeld einzublenden.

    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);
    
    ADB-Befehl verwenden

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

    Wische auf dem Touchpad vor und zurück, um deine bevorzugte Anwendung auszuwählen, und tippe zum Bestätigen. Verwenden Sie dieselbe Methode, um die Schaltfläche „Immer“ auszuwählen.

    Aufgabenmodus sperren

    Im Sperraufgabenmodus können Sie eine Liste von 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 zum Sperren von Aufgaben starten

    Der Modus zum Sperren der Aufgabe kann über die Aktivität der App gestartet werden. Im folgenden Snippet sehen Sie, wie das funktioniert:

    Kotlin

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

    Java

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