Appareils dédiés

Les lunettes Glass sont généralement configurées pour être utilisées comme appareils dédiés avec un petit nombre d'applications qui constituent une solution d'entreprise. Le guide suivant montre comment configurer Glass en tant qu'appareil dédié.

Provisionnement

Le provisionnement sans contact de Glass Enterprise Edition 2 installe et configure une application d'administration téléchargée à partir des métadonnées fournies par un code QR. Cette application peut exploiter l'API DevicePolicyManager, qui est la méthode préféré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 lancement. Cela garantit que l'application dédiée est lancée automatiquement après le redémarrage de l'appareil. Le contenu suivant présente les tâches nécessaires à la préparation d'une application et à sa définition en tant que lanceur d'applications:

  • 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 du 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. Cela 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 une componentName donnée en tant que lanceur de l'appareil, sans interagir avec lui.

    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'interface utilisateur sur l'appareil

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

    Geste pour balayer l'écran vers le haut dans les paramètres

    Balayez l'écran d'accueil vers l'arrière pour afficher un résumé 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'intent 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 l'écran vers l'avant ou vers l'arrière sur le pavé tactile pour sélectionner votre application préférée, puis appuyez pour confirmer. Utilisez la même méthode pour sélectionner le bouton "Toujours".

    Mode tâche verrouillée

    Le mode Tâche de verrouillage vous permet de créer une liste des 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âche de verrouillage

    Le mode Tâche de verrouillage peut être activé par l'activité de l'application. L'extrait de code suivant montre comment procéder:

    Kotlin

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

    Java

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