Dispositivos exclusivos

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