Android 7.1.1 introdujo compatibilidad a nivel de sistema con el modo de demo para punto de venta para que los clientes pueden ver cómo funcionan en las tiendas minoristas. Se configuraron los dispositivos para la demo para punto de venta con una app del propietario del dispositivo para garantizar que el uso del dispositivo sea restringido solo a ciertas apps en modo de demostración. Los usuarios finales no deben poder agregar cuenta personal en un dispositivo de demo para punto de venta. Android 8.1 revisa esta compatibilidad para crear Usuarios de demostración con DevicePolicyManager createAndManageUser en la API de Cloud. Esto permite una personalización mucho mayor del OEM en el modo de venta minorista estándar en las condiciones de la administración de usuarios y de políticas de dispositivo en el dispositivo de demostración.
Si bien DevicePolicyManager
Las APIs se pueden usar en versiones anteriores a Android 8.1,
No se pueden crear usuarios del tipo demo-type (DevicePolicyManager.MAKE_USER_DEMO
)
con el comando createAndManageUser
en las versiones 8.0 y anteriores.
Implementación en Android 8.1 y versiones posteriores
En esta sección, se destacan las mejoras de la plataforma y se describe la demostración para la venta minorista. en Android 8.1 y versiones posteriores.
Cambios en la plataforma
Establecer DEVICE_DEMO_MODE
Se deben configurar los dispositivos que implementan un modo de demo para punto de venta basado en el propietario del dispositivo
Settings.Global.DEVICE_DEMO_MODE
a 1 antes de
aprovisionamiento para indicar que el dispositivo se está aprovisionando para la demo para punto de venta
.
SystemServer
usa esta marca para administrar aspectos del modo de venta, como el perfil de energía y
IU del sistema
Habilitar RetailDemoModeService
En los dispositivos que implementan el modo de demo para punto de venta, el asistente de configuración establece un
estableciendo
Global.DEVICE_DEMO_MODE
por true
para indicar que el dispositivo entró en el modo de venta. Por
viendo este parámetro de configuración, RetailDemoModeService crea un usuario de demostración y cambia a él cuando se inicia el usuario 0, lo que habilita
el selector personalizado especificado en un recurso de superposición e inhabilita SUW. Sistema
Server y SystemUI también usan esta marca para administrar aspectos del modo de venta.
Configurar un selector o reproductor de video personalizado
Los fabricantes de dispositivos pueden especificar un selector personalizado anulando el framework.
el recurso config_demoModeLauncherComponent
especificado en config.xml
como se muestra a continuación.
<!-- Component that is the default launcher when Retail Mode is enabled. -->
<string name="config_demoModeLauncherComponent">com.android.retaildemo/.DemoPlayer</string>
La aplicación DemoPlayer para venta minorista ubicada en /packages/apps/RetailDemo es el selector personalizado predeterminado del Proyecto de código abierto de Android (AOSP). El La app busca un video en una partición de dispositivo, como /data/preloads/demo/retail_demo.mp4. y lo reproduce en bucle. Cuando el usuario toca la pantalla, el selector personalizado inhabilita su componente de actividad, lo que provoca que el launcher del sistema predeterminado iniciar.
El selector personalizado debe tener su componente personalizado marcado como inhabilitado de forma predeterminada.
para que no aparezca en situaciones no demográficas. En la situación de la demostración,
El servidor habilita el config_demoModeLauncherComponent
especificado cuando inicia un
nueva sesión de demostración.
El asistente de configuración también busca el video mencionado anteriormente para proporcionar un para entrar en el modo de venta minorista. El SUW se puede modificar para buscar otro Señal específica del OEM que indica que se admite el modo de venta si el video no forma parte de la demostración. Si hay particiones A/B del sistema, la partición B del sistema debe contiene el video de demostración en /preloads/demo. Esto se copia en /data/preloads/demo durante el primer inicio.
Personaliza las apps precargadas para el modo de demo para punto de venta
Las apps precargadas pueden personalizar su experiencia para el modo de demo para punto de venta llamando
el UserManager.isDemoUser()
para ver si la app se inicia en un entorno de demostración.
El usuario de demostración establece ciertas restricciones, similares al dispositivo administrado
políticas de perfil que impiden que las apps y los usuarios realicen determinadas operaciones.
Una de estas restricciones es DISALLOW_MODIFY_ACCOUNTS
. Con esta restricción, el AccountManager
y Configuración
no permiten agregar cuentas. Algunas apps de Google reaccionan a esta restricción
y muestran un mensaje de error, y otras personas no solicitarán una cuenta (p. ej.,
YouTube y Fotos). Recomendamos que las apps del OEM también verifiquen si
Se configura DISALLOW_MODIFY_ACCOUNTS
y controla la situación según corresponda.
Actualizaciones del sistema
De forma predeterminada, cuando el modo de venta está habilitado, la política de dispositivo se establece como inalámbrica. (OTA) automáticamente. Se descargarán, se reiniciarán y se instalarán los dispositivos de venta minorista la actualización (respetando los umbrales de batería) sin la interacción del usuario.
App de demo para punto de venta
La implementación del modo de demo para punto de venta basado en el propietario del dispositivo requiere una Controlador de política de dispositivo establecerse como el propietario del dispositivo. AOSP contiene una app de referencia de RetailDemo en /packages/apps/RetailDemo.
Las aplicaciones del propietario del dispositivo no requieren privilegios elevados ni preinstalación en la del sistema y se pueden descargar durante el proceso de configuración o aprovisionamiento. En su mayoría, se implementan como apps tradicionales, con las siguientes características: diferencias:
Todas las apps de propietarios de dispositivos deben extender el DeviceAdminReceiver. que sirve como token de autorización para todos DevicePolicyManager APIs El componente debe incluir el valor
android.permission.BIND_DEVICE_ADMIN
permiso, incluye las políticas especiales solicitadas como metadatos y filtra lasandroid.app.action.PROFILE_PROVISIONING_COMPLETE
yandroid.app.action.DEVICE_ADMIN_ENABLED
.DevicePolicyManager#Make_USER_DEMO marca, que se configura para crear usuarios especiales de tipo demo, es una API oculta. Esta marca tiene un valor constante 0x4.
La propiedad del dispositivo debe asignarse solo a través de la función de administración de dispositivos propietario o el dominio ManagedProvisioning .
APIs en DevicePolicyManager permite al Propietario del dispositivo (DO) y Propietario del perfil (PO) aplicar varias y políticas de seguridad. Algunos de los métodos de DevicePolicyManager Las funciones aplicables para el modo de demo para punto de venta se enumeran a continuación.
Crear y administrar usuarios.
Reinicia el dispositivo.
Configura los paquetes permitidos de LockTask.
Instala paquetes con PackageInstaller.
Bloquea la desinstalación de paquetes.
Habilita las actualizaciones automáticas del sistema. Los dispositivos descargarán y aplicarán actualizaciones inalámbricas automáticamente.
Inhabilitar el bloqueo del teclado
Evitar la configuración de contraseñas o huellas dactilares
Establecer un conjunto de Settings.Global incluido en la lista de entidades permitidas, Settings.Secure, y Settings.System. configuración.
Establece la política de permisos en
PERMISSION_POLICY_AUTO_GRANT
, otorga automáticamente todos los permisos de tiempo de ejecución. También se pueden otorgar permisos de manera más restringida: un único permiso para una sola app. Esto no se aplica a permisos de app-ops, que los usuarios deben otorgar por usuario y por app.Establece restricciones de usuario relevantes para el modo de venta, como se define en Administrador de usuarios 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
Actualiza el video de demostración a través de la Web
La app de RetailDemo en /packages/apps/RetailDemo puede actualizar el video de demostración si hay conectividad de red. La URL desde la que se descargará el video se puede configurar anulando la siguiente de cadena en la app de RetailDemo.
<!-- URL where the retail demo video can be downloaded from. -->
<string name="retail_demo_video_download_url"></string>
Si se deben usar videos distintos en regiones distintas, Las URLs de descarga se pueden configurar usando recursos de cadenas específicos de la configuración regional en res/values-*/strings.xml. Por ejemplo, si se deben usar distintos videos en Estados Unidos y las Gran Bretaña, entonces 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/values-en-rUS/strings.xml:
<string name="retail_demo_video_download_url">download URL for US video goes here</string>
En res/values-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 cada vez que se reinicia el dispositivo. Cuando se está reproduciendo un video en el dispositivo, la app RetailDemo lo verifica en segundo plano. si se proporciona la URL de descarga y el video de la URL es más nuevo que el que se está tocando.
Si es así, la app de RetailDemo descarga y comienza a reproducir el video. Cuando se reproduzca el video , se usará para reproducirlo en todas las sesiones de demostración a futuro. Ninguno de las comprobaciones vuelve a realizarse hasta el próximo reinicio.
Lineamientos del video de demostración
Los videos de demostración deben estar en posición vertical o, si se trata de una tablet, en la pantalla del dispositivo. orientación natural y puede tener cualquier duración superior a cinco segundos. Contenido no deben generar efecto quemado, ya que se reproducirá constantemente cuando se muestre.
Consulta las definiciones para desarrolladores de Android de usuarios, perfiles y cuentas; documentación de la API de Device Policy Manager y la app de ejemplo del propietario del dispositivo para obtener más información.
Validación
CTS no abarca el modo de demo para punto de venta porque es una función opcional. Prueba deben realizarse de forma manual o con pruebas de unidades para la aplicación de demostración.
Sesión de demostración
Configuración de la sesión de demostración
Los dispositivos de demo para punto de venta pueden iniciarse en el modo de demo para punto de venta si están configurados para este modo. de fábrica. Como alternativa, los empleados de venta minorista pueden habilitar el modo de venta directamente desde el asistente de configuración.
Figura 2: Modo de demostración para punto de venta
Muestra la sesión de demostración
Cuando el dispositivo entra en modo de venta, cambia a un nuevo usuario de demostración y inicia automáticamente el selector personalizado especificado en el recurso de superposición. como se describe en Implementación. De forma predeterminada, este selector personalizado reproduce el video de demostración una y otra vez hasta que el usuario toca para iniciar una sesión de usuario de demostración. En ese momento, se inicia el selector personalizado. desde el launcher del sistema y luego se cierra. Los OEM pueden modificar el selector personalizado para iniciar, además, otro servicio o actividad al salir.
Para mantener la integridad del modo de venta, el bloqueo del teclado está inhabilitado y se ejecutarán ciertas acciones de la Configuración rápida que podrían afectar negativamente el modo de venta. también están prohibidos, entre las que se incluyen las siguientes:
- Botón de activación del modo de avión
- Eliminar o modificar puntos de acceso Wi-Fi (Configuración).
- Cambio de proveedor (Configuración)
- Configurando el hotspot (configuración)
- Cambio de usuario
Además, también se bloquea el acceso a algunos parámetros de configuración globales que pueden afectar el modo de venta minorista inhabilitando lo siguiente:
- Configuración de Wi-Fi.
- Opciones de configuración de la red móvil, particularmente los hotspots.
- Configuración de Bluetooth.
- Copia de seguridad y Restablecer, Fecha y el tiempo y las redes móviles (así no aparecen).
Si el usuario permanece inactivo durante un tiempo determinado (90 segundos de forma predeterminada), el modo de venta muestra un diálogo del sistema para que el usuario salga de la sesión o continúe. Si el usuario elige salir o si no hay respuesta durante cinco segundos, quita el usuario actual de la demostración, cambia a uno nuevo hace una repetición indefinida del video original. Si la pantalla se apaga mediante el botón botón de encendido, se volverá a encender automáticamente después de unos segundos.
Después de salir de la sesión de demostración, los dispositivos se silencian y restablecen algunas de configuración, incluidos los siguientes:
- Brillo
- Rotación automática
- Linterna
- Idioma
- Accesibilidad
Salir del modo de demo para punto de venta
Para salir del modo de venta, los empleados de venta minorista deben asegurarse de que el dispositivo de demostración no está inscrito en la administración de dispositivos y restablece su configuración de fábrica desde la boot loader.