Por lo general, Glass está configurado para usarse como un dispositivo dedicado con una pequeña cantidad de aplicaciones que conforman una solución empresarial. En la siguiente guía, se muestra cómo configurar Glass como un dispositivo dedicado.
Aprovisionando
El aprovisionamiento de bajo contacto en Glass Enterprise Edition 2 instala y configura una aplicación de administración que se descargó 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 dedicado, debes reemplazar la aplicación iniciadora. Esto garantiza que la aplicación dedicada se inicie automáticamente después de reiniciar el dispositivo. En el siguiente contenido, se describen las tareas necesarias para preparar una aplicación y configurarla como selector:
- Filtro de intents de actividad
- Configura un nuevo selector
Filtro de intent de actividad
Debes agregar las siguientes categorías a la actividad principal del 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>
Configurar un nuevo selector
Para establecer un nuevo selector, llama a addPersistentPreferredActivity() desde la aplicación de administración. Esto solo funciona si ya se aprovisionó el dispositivo. Para dispositivos no aprovisionados, selecciona un selector nuevo desde la IU en el dispositivo.
Agregar actividad preferida persistente
Este método te permite establecer un componentName
determinado como 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:
Uso del gesto de deslizar hacia arriba en la configuración
Desliza el dedo hacia atrás en la pantalla principal para ver una pantalla de resumen de la configuración. Luego, presiona para ingresar a la pantalla de configuración. Desliza el dedo hacia arriba para que aparezca el cuadro de 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);
Cómo usar 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 tu aplicación preferida y presiona para confirmar. Usa el mismo método para seleccionar el botón "Always"
Modo de tareas bloqueadas
El modo de bloqueo de tarea te permite crear una lista de paquetes permitidos para ejecutarse en el dispositivo.
Establecer 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);
Iniciar el modo de bloqueo de tarea
La actividad de la aplicación puede iniciar el modo de bloqueo de tarea. 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(); }