Pregunta Android: ¿Cómo hacer que el dispositivo ejecute solo una aplicación?


Tengo un proyecto de cliente donde tengo que hacer un dispositivo Android de tarea única. El cliente no puede escapar de la aplicación que mi compañía ha desarrollado. Además, el cliente no puede iniciar ninguna otra aplicación y nuestra aplicación se inicia cuando se inicia el dispositivo. En general, todo lo que el cliente puede hacer con el dispositivo es ejecutar nuestra aplicación.

¿Hay alguna otra forma de hacer esto que rootear el dispositivo, deshabilitar todos los botones del sistema y hacer que nuestra aplicación sea el iniciador? Tengo algo así como 400 dispositivos para este fin, por lo que enraizarlos a todos les costaría mucho tiempo.

También leí el tutorial de Google sobre los dispositivos COSU, pero me pareció muy confuso https://developer.android.com/work/cosu.html#testing-plan

La fijación de pantalla propia de Androids no es lo suficientemente buena porque el cliente puede escapar de la aplicación. Algunos pueden sugerir utilizar alguna aplicación de kiosco como SureLock, pero el objetivo de mi empresa es encontrar una solución clara para esto sin utilizar ninguna aplicación de terceros. También ejecutar nuestra aplicación a través de una aplicación de kiosco no es nuestro objetivo.

Encontré algunas publicaciones en el desbordamiento de pila con una pregunta similar, pero no la respuesta que estoy buscando.

Si alguien tiene algunos consejos para esta pregunta, estaría muy agradecido.


9
2018-02-13 08:25


origen


Respuestas:


Los dispositivos de propósito único construidos sobre Android pueden ser difíciles de implementar. Hay algunas opciones diferentes, pero cada una tiene sus compensaciones.

Como mencionaste, los dispositivos rooting te proporcionarán funcionalmente lo que quieras; sin embargo, consumirá mucho tiempo con cientos de dispositivos para rootear, será difícil de mantener e introducirás (potencialmente) problemas de seguridad en tus dispositivos y aplicaciones.

Otra opción es usar Google Bloquear modo de tarea para dispositivos COSU [1]. El enlace tiene un bonito gráfico que muestra las características del modo de tarea de bloqueo:

  • 1 aplicación anclada en la pantalla de inicio
  • solo las aplicaciones listadas en blanco por el DPC (controlador de políticas del dispositivo) pueden bloquearse
  • Inicio y botones recientes ocultos
  • salir llamando stopLockTask()

Hay algunas desventajas de usar la solución de Google para esto. Primero Google recomienda crear (y por lo tanto mantener) una aplicación DPC completamente separada para ejecutar como propietario del dispositivo y establecer políticas [2]. También dependerá de Google Play para administrar las actualizaciones de las aplicaciones y se le exigirá que tenga cuentas de Play asociadas a cada dispositivo que "se utilizan para identificar un único dispositivo que no está vinculado a un solo usuario para simplificar las reglas de distribución de aplicaciones por dispositivo en escenarios de estilo COSU "[3]. Para obtener automáticamente su aplicación DPC en dispositivos, su "DPC debe estar disponible públicamente en Google Play, y el usuario final puede instalar el DPC desde el asistente de configuración del dispositivo ingresando el identificador específico de DPC". [3] También necesitará suba la aplicación del usuario a Google Play [4], lo que puede ser un problema para algunos que no desean que sus aplicaciones se reproduzcan. Seguir esta ruta le brinda las características que necesita, pero puede ser complicado y también lo vincula estrechamente con los servicios de Google / Play y su flujo de trabajo.

También puede ver las plataformas de implementación móvil de la empresa como Mason [5]. En su caso, puede crear un sistema operativo Android personalizado en pocos minutos con su aplicación bloqueada en modo kiosco (+ otras funciones como desactivar cámara / sms, eliminar aplicaciones y ocultar configuraciones, etc.) y luego implementarla en todos sus dispositivos remotamente. Mason también es compatible con actualizaciones de SO y aplicaciones controladas por usted si cambian sus requisitos.

Si esto le parece útil, no dude en comunicarse conmigo: trevor @ bymason.com

DESCARGO DE RESPONSABILIDAD: trabajo para Mason


6
2018-04-26 21:27



Fui al mismo problema antes. Pasé al menos 3 días investigando. Traté de encontrar muchas soluciones, pero encontré cero.

    How I solve is

    1. Up To JellyBean 
     - Use System Alert Dialog (And make it transparent and small size like 2 * 2 And display in some corner(User can't see it)). User can't press home button If there is system Alert dialog

    2. After JellyBean, This method doesn't work. The user can press the home button even though there is System Alert Dialog.
    so what I did is, start the service on stop and start the same activity again and again(within sec). So user can't see any difference.Don't forget to make activity as single task so that even though you start same activity from service, again and again, new activity will not create (So Ugly way )

    - You can simple make screen full screen. make sure in kiosk mode try to check if the screen is in full-screen mode. if not make it full-screen mode(its not hard to do)

    - other way is to make launcher app but when ever you pressed home button it always asked to choose launcher app. if user mistakenly choose default/ other launcher app, this solution doesnt work

    Good luck

1
2018-02-13 09:15



Haga su aplicación como una aplicación de inicio definiendo en el archivo de manifiesto.

Luego, vaya a la configuración de su dispositivo móvil y cambie la aplicación iniciadora predeterminada a su aplicación.


0
2018-02-13 09:12