Por lo general, Glass se configura para usarse como un dispositivo exclusivo con una pequeña cantidad de aplicaciones que componen una solución empresarial. En la siguiente guía, se muestra cómo configurar Glass como un dispositivo exclusivo.
Aprovisionamiento
El aprovisionamiento con poca interacción en Glass Enterprise Edition 2 instala y configura una aplicación para administradores que se descarga de los metadatos proporcionados en un código QR. Esta aplicación puede aprovechar la API de DevicePolicyManager, que es el método preferido para administrar la configuración del dispositivo.
Reemplazar selector
Para configurar un dispositivo exclusivo, debes reemplazar la aplicación de selector. Esto garantiza que la aplicación dedicada se inicie automáticamente después de que se reinicie el dispositivo. En el siguiente contenido, se describen las tareas necesarias para preparar una aplicación y establecerla como el selector:
- Filtro de intents de actividad
- Cómo establecer un nuevo selector
Filtro de intents de actividad
Debes agregar las siguientes categorías a la actividad principal en el manifiesto de tu aplicación:
<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>
Cómo establecer un nuevo selector
Para establecer un nuevo selector, llama a addPersistentPreferredActivity() desde la aplicación de administrador. Esto solo funciona si el dispositivo ya se aprovisionó. En el caso de los dispositivos no aprovisionados, selecciona un nuevo selector desde la IU del dispositivo.
Agrega una actividad preferida persistente
Este método te permite establecer un componentName
determinado como el selector del dispositivo sin interactuar con él.
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);
Cómo usar la IU en el dispositivo
Usa uno de los siguientes métodos para mostrar un diálogo de selección del selector en la pantalla:
Cómo usar el gesto táctil de deslizar hacia arriba en la configuración
Desliza el dedo hacia atrás en la pantalla principal para mostrar una pantalla de resumen de la configuración. Luego, presiona para ingresar a la pantalla de configuración. Desliza el dedo hacia arriba para mostrar el diálogo.
Cómo usar la intención en la aplicación
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);
Usa el comando adb
adb shell am start -a android.intent.action.MAIN -c android.intent.category.HOME
Desliza el dedo hacia adelante y hacia atrás en el panel táctil para seleccionar la aplicación que prefieras y presiona para confirmar. Usa el mismo método para seleccionar el botón "Siempre".
Modo de tareas bloqueadas
El modo de bloqueo de tareas te permite crear una lista de paquetes que pueden ejecutarse en el dispositivo.
Cómo establecer los paquetes permitidos
En el siguiente fragmento, se muestra cómo configurar la lista de paquetes:
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);
Cómo iniciar el modo de tareas bloqueadas
La actividad de la aplicación puede iniciar el modo de tareas bloqueadas. En el siguiente fragmento, se muestra cómo puedes hacerlo:
Kotlin
override fun onResume() { super.onResume() activity.startLockTask() }
Java
@Override public void onResume() { super.onResume(); getActivity().startLockTask(); }