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