Modo de demostración minorista

Android 7.1.1 introdujo soporte a nivel de sistema para el modo de demostración minorista para que los clientes puedan examinar los dispositivos en acción en las tiendas minoristas. Los dispositivos se configuran para la demostración minorista mediante una aplicación del propietario del dispositivo para garantizar que el uso del dispositivo esté restringido solo a ciertas aplicaciones en modo de demostración. Los usuarios finales no deben poder agregar una cuenta personal en un dispositivo de demostración minorista. Android 8.1 revisa este soporte para crear usuarios de demostración a través de DevicePolicyManager createAndManageUser API. Esto permite una personalización OEM mucho mayor al modo minorista estándar en términos de administración de usuarios y administración de políticas de dispositivos en el dispositivo de demostración.

Si bien las API de DevicePolicyManager se pueden usar en versiones anteriores a Android 8.1, los usuarios de tipo demostración ( DevicePolicyManager.MAKE_USER_DEMO ) no se pueden crear con la API createAndManageUser en las versiones 8.0 y anteriores.

Implementación en Android 8.1 y posteriores

Esta sección destaca las mejoras de la plataforma y describe la aplicación de demostración minorista en Android 8.1 y versiones posteriores.

Cambios de plataforma

Establecer DEVICE_DEMO_MODE

Los dispositivos que implementen un modo de demostración minorista basado en el propietario del dispositivo deben configurar Settings.Global.DEVICE_DEMO_MODE en 1 antes del aprovisionamiento para indicar que el dispositivo se está aprovisionando para el modo de demostración minorista. SystemServer usa este indicador para administrar aspectos del modo minorista, como el perfil de energía y SystemUI.

Habilitar RetailDemoModeService

En los dispositivos que implementan un modo de demostración minorista, el asistente de configuración establece una configuración global Global.DEVICE_DEMO_MODE en true para indicar que el dispositivo ha ingresado al modo minorista. Al ver esta configuración, RetailDemoModeService crea un usuario de demostración y cambia a él cuando se inicia el usuario 0, habilita el iniciador personalizado especificado en un recurso de superposición y deshabilita SUW. System Server y SystemUI también usan este indicador para administrar aspectos del modo comercial.

Establecer lanzador personalizado o reproductor de video

Los fabricantes de dispositivos pueden especificar un lanzador personalizado anulando el recurso de marco config_demoModeLauncherComponent especificado en el archivo config.xml de la siguiente manera.

<!-- Component that is the default launcher when Retail Mode is enabled. -->
<string name="config_demoModeLauncherComponent">com.android.retaildemo/.DemoPlayer</string>

La aplicación DemoPlayer de demostración minorista ubicada en /packages/apps/RetailDemo es el iniciador personalizado predeterminado en el Proyecto de código abierto de Android (AOSP). La aplicación busca un video en una partición del dispositivo como /data/preloads/demo/retail_demo.mp4 y lo reproduce en bucle. Cuando el usuario toca la pantalla, el iniciador personalizado desactiva su componente de actividad, lo que hace que se inicie el iniciador del sistema predeterminado.

El iniciador personalizado debe tener su componente personalizado marcado como deshabilitado de forma predeterminada para que no aparezca en escenarios que no sean de demostración. En el escenario de demostración, System Server habilita el config_demoModeLauncherComponent especificado al iniciar una nueva sesión de demostración.

El asistente de configuración también busca el video mencionado anteriormente para brindar la oportunidad de ingresar al modo minorista. SUW se puede modificar para buscar alguna otra señal específica del OEM de que se admite el modo minorista si el video no es parte de la demostración. Si hay particiones del sistema A/B, la partición del sistema B debe contener el video de demostración en /preloads/demo. Esto se copia a /data/preloads/demo en el primer arranque.

Personalice las aplicaciones precargadas para el modo de demostración minorista

Las aplicaciones precargadas pueden personalizar su experiencia para el modo de demostración minorista llamando a la API UserManager.isDemoUser() para ver si la aplicación se inicia en un entorno de demostración.

Se establecen ciertas restricciones en el usuario de demostración, similares a las políticas de perfiles o dispositivos administrados que impiden que las aplicaciones y los usuarios realicen ciertas operaciones. Una de estas restricciones es DISALLOW_MODIFY_ACCOUNTS . Con esta restricción, AccountManager y Settings no permiten agregar cuentas. Algunas aplicaciones de Google reaccionan a esta restricción y muestran un mensaje de error, y otras no solicitan una cuenta (como YouTube y Fotos). Recomendamos que las aplicaciones OEM también verifiquen si DISALLOW_MODIFY_ACCOUNTS está configurado y manejen el escenario en consecuencia.

Actualizaciones del sistema

De forma predeterminada, cuando el modo minorista está habilitado, la política del dispositivo se configura para que se actualice automáticamente por aire (OTA). Los dispositivos minoristas descargarán, reiniciarán e instalarán la actualización (respetando los umbrales de batería) sin la interacción del usuario.

Aplicación de demostración minorista

La implementación del modo de demostración minorista basado en el propietario del dispositivo requiere que se establezca una aplicación Device Policy Controller como propietario del dispositivo. El AOSP contiene una implementación de la aplicación RetailDemo de referencia en /packages/apps/RetailDemo .

Las aplicaciones del propietario del dispositivo no necesitan privilegios elevados ni preinstalación en la imagen del sistema y se pueden descargar durante el proceso de configuración o aprovisionamiento. En su mayoría se implementan como aplicaciones tradicionales, con las siguientes diferencias:

Las API de la clase DevicePolicyManager permiten que el propietario del dispositivo (DO) y el propietario del perfil (PO) apliquen varias políticas de dispositivos. Algunas de las funciones de DevicePolicyManager aplicables para el modo de demostración minorista se enumeran a continuación.

  • Crear y administrar usuarios.

  • Reinicie el dispositivo.

  • Establecer paquetes permitidos por LockTask.

  • Instale paquetes a través de PackageInstaller .

  • Bloquear paquetes para que no se desinstalen.

  • Habilite las actualizaciones automáticas del sistema. Los dispositivos descargarán y aplicarán automáticamente las actualizaciones OTA.

  • Desactivar el bloqueo de teclado.

  • Evite establecer contraseñas o huellas dactilares.

  • Establezca un conjunto en la lista de permitidos de Settings.Global , Settings.Secure y Settings.System settings.

  • Establezca la política de permisos en PERMISSION_POLICY_AUTO_GRANT , que otorga automáticamente todos los permisos de tiempo de ejecución. Los permisos también se pueden otorgar de manera más limitada: un solo permiso para una sola aplicación. Esto no se aplica a los permisos de operaciones de aplicaciones, que los usuarios aún deben otorgar por usuario y por aplicación.

  • Establezca las restricciones de usuario relevantes para el modo minorista como se define en UserManager de la siguiente manera.

    • DISALLOW_MODIFY_ACCOUNTS
    • DISALLOW_USB_FILE_TRANSFER
    • DISALLOW_DEBUGGING_FEATURES
    • DISALLOW_CONFIG_WIFI
    • DISALLOW_CONFIG_BLUETOOTH
    • DISALLOW_INSTALL_UNKNOWN_SOURCES
    • DISALLOW_CONFIG_MOBILE_NETWORKS

Actualice el video de demostración usando la web

La aplicación RetailDemo en /packages/apps/RetailDemo tiene la capacidad de actualizar el video de demostración si hay conectividad de red. La URL para descargar el video se puede configurar anulando el siguiente valor de cadena en la aplicación RetailDemo.

<!-- URL where the retail demo video can be downloaded from. -->
<string name="retail_demo_video_download_url"></string>

Si es necesario usar diferentes videos en diferentes regiones, se pueden configurar diferentes URL de descarga mediante el uso de recursos de cadena específicos de la configuración regional en res/values-*/strings.xml . Por ejemplo, si es necesario usar videos diferentes en los Estados Unidos y Gran Bretaña, las URL de descarga correspondientes se pueden colocar en res/values-en-rUS/strings.xml y res/values-en-rGB/strings.xml , respectivamente, como se muestra a continuación.

  • En res/valores-en-rUS/strings.xml:

    <string name="retail_demo_video_download_url">download URL for US video goes here</string>
    
  • En res/valores-en-rGB/strings.xml:

    <string name="retail_demo_video_download_url">download URL for UK video goes here</string>
    

Este video se descarga como máximo una vez por cada reinicio del dispositivo. Cuando se reproduce el video en el dispositivo, la aplicación RetailDemo verifica en segundo plano si se proporciona la URL de descarga y si el video en la URL es más nuevo que el que se está reproduciendo.

Si es así, la aplicación RetailDemo se descarga y comienza a reproducir el video. Una vez que se descarga el video, se usa para reproducirlo en todas las sesiones de demostración en el futuro. Ninguna de las comprobaciones se vuelve a realizar hasta después del siguiente reinicio.

Pautas para videos de demostración

Los videos de demostración deben estar en formato vertical o, si se trata de una tableta, en la orientación natural del dispositivo, y pueden tener una duración superior a cinco segundos. El contenido no debe resultar en quemado, ya que se reproducirá constantemente cuando se muestre.

Consulte las definiciones de usuarios, perfiles y cuentas para desarrolladores de Android , la documentación de la API del administrador de políticas de dispositivos y la aplicación de propietario de dispositivo de muestra para obtener más información.

Validación

CTS no cubre el modo de demostración minorista porque es una característica opcional. Las pruebas deben realizarse manualmente o con pruebas unitarias para la aplicación de demostración.

sesión de demostración

Configuración de la sesión de demostración

Los dispositivos de demostración minorista pueden iniciarse en el modo de demostración minorista si están configurados para el modo de demostración de fábrica. Alternativamente, los empleados minoristas pueden habilitar el modo minorista directamente desde el asistente de configuración.

Retail demo mode

Figura 2. Modo de demostración minorista

Mostrar sesión de demostración

Cuando el dispositivo ingresa al modo minorista, cambia a un nuevo usuario de demostración e inicia automáticamente el iniciador personalizado especificado en el recurso de superposición como se describe en Implementación . De manera predeterminada, este iniciador personalizado reproduce el video de demostración repetidamente hasta que el usuario toca la pantalla para comenzar una sesión de usuario de demostración. En ese momento, el iniciador personalizado inicia el iniciador del sistema y luego sale. Los OEM pueden modificar el iniciador personalizado para iniciar adicionalmente otro servicio o actividad al salir.

Para mantener la integridad del modo minorista, el bloqueo de teclado está desactivado y ciertas acciones de la configuración rápida que podrían afectar negativamente el modo minorista también están deshabilitadas, incluidas las siguientes.

  • Alternar modo avión.
  • Eliminar o modificar puntos de acceso Wi-Fi (Configuración).
  • Cambio de operador (Configuración).
  • Configuración de punto de acceso (Configuración).
  • Cambio de usuario.

Además, también se bloquea el acceso a algunas configuraciones globales que pueden afectar el modo minorista al deshabilitar lo siguiente:

  • Configuración de wifi.
  • Opciones de configuración de redes celulares, particularmente hotspots.
  • Configuración Bluetooth.
  • Copia de seguridad y reinicio, Fecha y hora y Redes móviles (no aparecen en absoluto).

Si el usuario está inactivo durante un período de tiempo (90 segundos de forma predeterminada), el modo minorista muestra un cuadro de diálogo del sistema para solicitar al usuario que salga de la sesión o continúe. Si el usuario elige salir o si no hay respuesta durante cinco segundos, el modo minorista elimina al usuario de demostración actual, cambia a un nuevo usuario de demostración y vuelve a reproducir el video original. Si la pantalla se apaga con el botón de encendido, se vuelve a encender automáticamente después de unos segundos.

Después de salir de una sesión de demostración, los dispositivos se silencian y restablecen algunas configuraciones globales, incluidas las siguientes:

  • Brillo
  • Rotación automática
  • Linterna
  • Idioma
  • Accesibilidad

Salir del modo de demostración minorista

Para salir del modo minorista, los empleados minoristas deben asegurarse de que el dispositivo de demostración no esté inscrito en la administración de dispositivos y restablecer los valores de fábrica del dispositivo desde el cargador de arranque.