¿Cómo puedo simular el acelerómetro en el emulador de Android?

No tengo un teléfono Android en este momento. Pero en mi aplicación necesito usar los valores del acelerómetro. ¿Cómo puedo hacer esto en un entorno simulado?

El emulador de Android no lo soporta, pero el SensorSimulator de OpenIntents llena el vacío. Descargue y descomprima el archivo zip, luego inicie el archivo jar independiente:

$ java -jar bin/sensorsimulator.jar 

Luego, instale SensorSimulatorSettings en el emulador usando la herramienta adb que viene con el SDK:

 $ adb -s  install bin/SensorSimulatorSettings.apk 

(ejecuta dispositivos adb para encontrar el nombre del dispositivo emulador). Finalmente, ejecute la aplicación SensorSimulatorSettings instalada en el emulador e ingrese la dirección IP 10.0.2.2 (a pesar de lo que pueda sugerir la aplicación SensorSimulator. Este es un alias del dispositivo de bucle invertido del host de desarrollo, por lo que siempre debe ser válido.

La versión más reciente del emulador viene habilitada con Accelerometer y otro soporte de simulación de sensores. Uno puede telnet localhost 5554 :

Probando 127.0.0.1 …
Conectado a localhost.
El carácter de escape es ‘^]’.
Consola Android: escribe ‘ayuda’ para obtener una lista de comandos
DE ACUERDO

sensor
le permite solicitar los sensores del emulador

subcomandos disponibles:
estado enumera todos los sensores y su estado.
obtener los valores del sensor
establecer los valores del sensor

KO: comando secundario faltante

estado del sensor
aceleración: habilitada.
campo magnético: habilitado.
orientación: habilitada.
temperatura: habilitada.
proximidad: habilitada.
DE ACUERDO

Cómo exactamente simular un batido, no lo sé. Intente enviar estos dos comandos uno tras otro rápidamente:

 sensor set acceleration 0:0:0 sensor set acceleration 99:99:99 

También estaba intentando hacer funcionar SensorSimulator y creo que finalmente lo conseguí.

Los pasos anteriores: “… java -jar bin / sensorsimulator.jar

A continuación, instale SensorSimulatorSettings en el emulador usando la herramienta adb que viene con el SDK: $ adb -s install bin / SensorSimulatorSettings.apk

… Finalmente, ejecute la aplicación SensorSimulatorSettings instalada en el emulador e ingrese la dirección IP 10.0.2.2 … ”

son un buen comienzo, pero necesitaba hacer más.

Al parecer, necesita modificar su aplicación para usar SensorSimulator. Puede ir a http://code.google.com/p/openintents/wiki/SensorSimulator y desplazarse hacia abajo a la sección “Cómo usar el SensorSimulator en su aplicación”.

Incluso entonces obtuve algunos errores al comstackr, por lo que es posible que desee ver esta página: componente del termómetro Vintage + SensorSimulator en el emulador de Android : tuve que eliminar las referencias a android.hardware.Sensor, SensorEvent y SensorEventListener.

Y luego estaba fallando en la llamada a connectSimulator. Aparentemente, necesitaba dar permiso a mi aplicación para usar Internet en el archivo de manifiesto.

Después de todo eso, puedo usar SensorSimulator para rotar virtualmente mi teléfono y obtengo las lecturas de sensor correspondientes en mi aplicación.

Experimenté que el emulador para el objective 10 no es compatible con el acelerómetro, pero sí lo es con el objective 15. No sé si hay una manera de hacerlo para el objective 10. Entonces, para probar su aplicación, cree su proyecto y AVD para el objective 15.

Te sugiero que uses la aplicación Genymotion, integre una herramienta completa para la prueba del acelerómetro y utiliza un emulador más rápido: Genymotion