Appareils dédiés

Glass est généralement configuré pour être utilisé comme un appareil dédié avec un petit nombre d'applications qui constituent une solution d'entreprise. Le guide suivant vous explique comment configurer Glass en tant qu'appareil dédié.

Provisionnement

Le provisionnement à faible interaction sur Glass Enterprise Edition 2 installe et configure une application d'administration téléchargée à partir des métadonnées fournies dans un code QR. Cette application peut tirer parti de l'API DevicePolicyManager, qui est la méthode privilégiée pour gérer la configuration de l'appareil.

Remplacer le lanceur d'applications

Pour configurer un appareil dédié, vous devez remplacer l'application de lanceur. Cela garantit que l'application dédiée est lancée automatiquement après le redémarrage de l'appareil. Le contenu suivant décrit les tâches à effectuer pour préparer une application et la définir comme lanceur :

  • Filtre d'intent d'activité
  • Définir un nouveau lanceur d'applications
  • Filtre d'intent d'activité

    Vous devez ajouter les catégories suivantes à l'activité principale dans le fichier manifeste de votre application :

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

    Définir un nouveau lanceur d'applications

    Pour définir un nouveau lanceur d'applications, appelez addPersistentPreferredActivity() depuis l'application d'administration. Cette opération ne fonctionne que si l'appareil a déjà été provisionné. Pour les appareils non provisionnés, sélectionnez un nouveau lanceur d'applications dans l'interface utilisateur de l'appareil.

    Ajouter une activité préférée persistante

    Cette méthode vous permet de définir un componentName donné comme lanceur d'applications de l'appareil, sans interagir avec l'appareil.

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

    Utiliser l'UI sur l'appareil

    Pour afficher une boîte de dialogue de sélection du lanceur d'applications à l'écran, utilisez l'une des méthodes suivantes :

    Utiliser le geste tactile "Balayer vers le haut" dans les paramètres

    Balayez l'écran d'accueil vers l'arrière pour afficher un écran récapitulatif des paramètres. Appuyez ensuite pour accéder à l'écran des paramètres. Balayez l'écran vers le haut pour afficher la boîte de dialogue.

    Utiliser l'intention dans l'application

    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);
    Utiliser la commande adb

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

    Balayez le pavé tactile vers l'avant ou vers l'arrière pour sélectionner l'application de votre choix, puis appuyez dessus pour confirmer. Utilisez la même méthode pour sélectionner le bouton "Toujours".

    Mode tâches verrouillées

    Le mode Verrouiller la tâche vous permet de créer une liste de packages autorisés à s'exécuter sur l'appareil.

    Définir les packages autorisés

    L'extrait de code suivant montre comment définir la liste des packages :

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

    Démarrer le mode tâches verrouillées

    Le mode tâches verrouillées peut être démarré par l'activité de l'application. L'extrait suivant montre comment procéder :

    Kotlin

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

    Java

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