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?)
- Codificación UTF-8 en WebView e ICS
- Riesgo de ciclo de vida de Android con singleTop y servicio de primer plano?
- Android - Bitmap y gestión de la memoria?
- Android mantiene el estado de devolución de llamada después del cambio de configuración
- Implementación de Android de los métodos de ciclo de vida puede llamar a la aplicación de superclase después de hacer cualquier trabajo?
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?)
- El mejor enfoque para pasar datos desde la vista web a la aplicación nativa (Windows, iOS y Android)
- ¿Cómo cargar una imagen en la vista de la imagen desde la galería?
- Android: Cómo detener el servicio de música de mi aplicación, si otra aplicación reproduce música.
- NetworkOnMainThread
- Cómo cargar baldosas de un mapa de bits grande en Android?
- Android: cómo saber si se mantiene pulsado el botón
- Lona: intentando usar un mapa de bits reciclado android.graphics.Bitmap
- Biblioteca de memoria de montón sin restricciones para mapas de bits mediante NDK en Android
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.
- Cómo hacer la imagen en color a blanco y negro en Android
- Lista predeterminada de fuentes que soporta los sistemas operativos android, ios y blackberry