Estoy escribiendo algunas de caja negra, pruebas de aceptación, que se ejecutan en física de un dispositivo android. La aplicación bajo prueba (AUT) se basa en la cámara de vista previa. En concreto, se utiliza el setOneShotPreviewCallback método de la android.hardware.Camera clase. Estoy buscando una manera de inyectar una falsa imagen de vista previa para probar la aplicación del comportamiento.

Pensé que podía engañar a la Cámara de objeto por tener el código de prueba de llamar a la AUT del PreviewCallback objeto, pero, por desgracia, la variable de instancia mPreviewCallback es privado de la Cámara de objeto y por lo tanto mi código de prueba no tiene manera de obtener una referencia a la PreviewCallback objeto.

Otra manera que pensé fue enviar un Message de la Cámara EventHandler, pero de nuevo el campo mEventHandler es privada, por lo que el código de prueba no tiene manera de obtener una referencia para el Controlador.

Creo que esta sugerencia podría romper su dispositivo físico regla, pero tal vez se ejecuta en genymotion puede lograr el truco que usted desea. genymotion.com/features
Es el dispositivo rooteado?
He seguido tu sugerencia y se han instalado en genymotion. Aunque es una fina pieza de software, no podía encontrar una manera de inyectar mediante programación una imagen en la cámara de vista previa de corriente. Parece ser que la única acción genymotions nos permite conectar mi físico de la webcam de flujo para la simulación de la cámara. He pasado por alto algo?
Mi dispositivo no es (aún) arraigados, pero estoy dispuesto a hacerlo si se soluciona mi problema.
Con algunos controlador de engaño que podría engañar genymotion en la alimentación de android la imagen que desea. Que depende altamente de la OS desea ejecutar este a pesar de que

OriginalEl autor lacton | 2013-12-16

1 Comentario

  1. 0

    Consulte Android burlarse de la Cámara y Cómo burlarse de una imagen en el Emulador de Android de la Cámara? Ambos métodos no necesita el dispositivo de raíces, pero que requieren un cambio de la aplicación. Yo creo que se puede hacer las modificaciones necesarias, incluso si usted no tiene acceso al código fuente, por la descompilación del dex.

    La primera pregunta (Android burlarse de la Cámara) sugiere el uso de Mockito para burlarse de la Cámara de la clase. Sin embargo, el mockito oficial doc establece que «Mockito no burlarse de finales de los métodos». La mayoría de la Cámara de los métodos final, parece burlarse de la Cámara no es una opción.
    El final de métodos como la setOneShotPreviewCallback() sólo son delgadas contenedores de métodos nativos. Usted puede crear la maqueta de la Cámara de la clase que se carga una alternativa de la biblioteca nativa para implementar este método.

    OriginalEl autor Alex Cohn

Dejar respuesta

Please enter your comment!
Please enter your name here