Cómo construir un simulador de sensores para Android?

Estoy construyendo una aplicación para la plataforma Android y me gustaría usar el acelerómetro. Ahora, he encontrado una aplicación muy agradable para la simulación de sensores ( SensorSimulator de OpenIntents ) pero, para lo que quiero hacer, me gustaría crear mi propia aplicación de simulador de sensor.

No he encontrado información sobre cómo hacer esto (no sé si el desmontaje del frasco del Simulador es correcto) y, como he dicho, me gustaría construir una versión más pequeña y más simple de un simulador de sensor, más adecuado para mi Intenciones

¿Sabes por dónde puedo empezar? ¿Dónde puedo ver cuáles son las piezas de código que necesito para construir?

Básicamente, todo lo que pido sólo por alguna dirección.

Bueno, parece que lo que quieres hacer es una aplicación que emulará los sensores de un dispositivo Android para tu aplicación mientras pruebas en el emulador.
Probablemente en su aplicación, tiene una línea como esta:

SensorManager mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE); 

¿Por qué no crear una interfaz que tenga los métodos que utiliza desde SensorManager:

 interface MySensorManager { List<Sensor> getSensorList(int type); ... // You will need to add all the methods you use from SensorManager here } 

Y luego crear un envoltorio para SensorManager que sólo llama a esos métodos en un objeto SensorManager real:

 class MySensorManagerWrapper implements MySensorManager { SensorManager mSensorManager; MySensorManagerWrapper(SensorManager sensorManager) { super(); mSensorManager = sensorManager; } List<Sensor> getSensorList(int type) { return mSensorManager.getSensorList(type_; } ... // All the methods you have in your MySensorManager interface will need to be defined here - just call the mSensorManager object like in getSensorList() } 

Y luego crear otro MySensorManager, que esta vez se comunica a través de un socket a una aplicación de escritorio que va a crear donde se introducen los valores del sensor o algo:

 class MyFakeSensorManager implements MySensorManager { Socket mSocket; MyFakeSensorManager() throws UnknownHostException, IOException { super(); // Connect to the desktop over a socket mSocket = = new Socket("(IP address of your local machine - localhost won't work, that points to localhost of the emulator)", SOME_PORT_NUMBER); } List<Sensor> getSensorList(int type) { // Use the socket you created earlier to communicate to a desktop app } ... // Again, add all the methods from MySensorManager } 

Y finalmente, reemplace su primera línea:

 SensorManager mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE); 

Con una nueva línea:

 MySensorManager mSensorManager; if(YOU_WANT_TO_EMULATE_THE_SENSOR_VALUES) { mSensorManager = new MyFakeSensorManager(); else { mSensorManager = new MySensorManagerWrapper((SensorManager)getSystemService(SENSOR_SERVICE)); } 

Ahora sólo puede utilizar ese objeto en lugar del SensorManager que utilizó antes.

  • ¿Cómo rastrear la posición de un dispositivo Android en un edificio?
  • ¿Cómo debo calcular el azimut, el tono, la orientación cuando mi dispositivo Android no es plano?
  • ¿El filtrado del acelerómetro de Android?
  • Valor de retorno falso inesperado de android.hardware.SensorManager.registerListener en Android 4.3
  • Protocolo de comunicación fiable y ligero para móviles
  • Cómo utilizar el evento del sensor Android para determinar si el dispositivo está orientado hacia arriba o hacia abajo
  • Sensores para teléfonos móviles
  • Azimut encontrado con Sensor.TYPE_MAGNETIC_FIELD mucho más inestable que Sensor.TYPE_ORIENTATION
  • Sistema de coordenadas del dispositivo Android Convert a sistema de coordenadas "usuario"
  • No es posible obtener los valores del sensor de proximidad en android
  • Cómo utilizar SensorManager.getOrientation () en lugar de TYPE_ORIENTATION
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.