Cómo grabar todos los touch and acclerometer en un dispositivo Android en TODAS las aplicaciones

Actualmente estoy trabajando en un proyecto de investigación que involucra a personas que juegan juegos en un dispositivo Android. Espero ser capaz de escribir una aplicación para Android que registra los eventos de acelerómetro y toque. Quisiera que mis usuarios pudieran jugar juegos tales como pájaros enojados, mientras que registro sus datos conmovedores.

Entiendo que este tipo de recolección de datos es posible desde dentro de la aplicación, pero ¿es posible desde fuera de la aplicación? (Quizás a través de una aplicación que se ejecuta en el fondo?)

Si esto no es posible, ¿hay alternativas? (Creo que podría teóricamente entrar en el código fuente del sistema operativo Android y hacer que esto suceda?)

Entiendo que este tipo de recolección de datos es posible desde dentro de la aplicación, pero ¿es posible desde fuera de la aplicación? (Quizás a través de una aplicación que se ejecuta en el fondo?)

Para eventos táctiles, no, por obvias razones de privacidad y seguridad. Solía ser posible (investigación el término "tapjacking"), pero las versiones actuales de Android finalmente bloquearon este comportamiento.

Para los eventos de acelerómetro, puede grabarlos, ya que son los mismos para todas las aplicaciones simultáneamente. Tenga en cuenta que su tasa de muestreo puede no coincidir exactamente con la de la aplicación que se utiliza.

Creo que podría teóricamente entrar en el código fuente del sistema operativo Android y hacer que esto suceda?

Sí, aunque tendría que convertir ese Android modificado en un mod de ROM e instalarlo en dispositivos.

Las aplicaciones no están permitidas para hacer esto en un dispositivo seguro (es decir, teléfono de consumo / tablet que no ha sido "arraigado").

Sin embargo, dependiendo de sus necesidades puede ser posible con las herramientas de desarrollo conectadas a una computadora. Si puedes hacer alguna configuración moderadamente molesta antes de cada prueba de circunstancias controladas, creo que puedes hacerlo en algunos dispositivos de stock usando el cable USB para cambiar ADB en modo wifi y luego supervisando eventos de entrada en una sesión ADB inalámbrica. Ver

http://source.android.com/tech/input/getevent.html

Ese documento parece implicar que se necesita 'su' (lo cual es extraño ya que el 'su' oficial no es utilizable por usuarios que no son root), sin embargo funciona sin muchos dispositivos de stock.

Probablemente también desea ejecutar logcat para averiguar qué aplicación está en primer plano.

  • La barra de título sigue apareciendo, incluso con requestWindowFeature o android: theme
  • Cómo crear piezas de rompecabezas sin usar máscara?
  • No se puede poner DrawerLayout en StatusBar
  • Android Stop Música de fondo
  • Cómo obtener el objeto Mat desde el byte en openCV android?
  • Talking App como hablar, la grabación de audio no funcionó en todos los dispositivos
  • Actualizaciones de versión de esquema de base de datos de Rails-like para Android
  • ¿Cómo puedo crear un mapa de bits enorme y blanco con Canvas?
  • ¿Cómo mostrar el texto hindi en android?
  • Barra de herramientas de Android con el botón de inicio y de retroceso
  • Cómo agregar encabezado y pie de página en pdf dinámico utilizando iTextLibrary?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.