• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

How to simulate sensors with sensor simulator in eclipse emulator

  • Thread starter Thread starter Android Question
  • Start date Start date
A

Android Question

Guest
I am trying to simulate some sensors like accelerometer on an emulator. I have installed the openintets sensor simulator on my virtual device and connected to it and everything works fine and numbers change in simulator setting tab on emulator when I move the virtual phone. then i run my own app.

This is my mainActivity code:

public class MainActivity extends Activity implements SensorEventListener{

private SensorManagerSimulator mySensorManager;
private Sensor sensor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mySensorManager =
SensorManagerSimulator.getSystemService(this, Context.SENSOR_SERVICE);
sensor = mySensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
RunSimulator run = new RunSimulator();
Thread t = new Thread(run);
t.start();
}

class RunSimulator implements Runnable {
int i = 0;
@Override
public void run() {
Log.d("****", i++ +"");
mySensorManager.connectSimulator();
}
}

@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
Log.d("****", "acc");
TextView acc = (TextView)findViewById(R.id.accuracy);
acc.setText(accuracy + "");
}

@Override
public void onSensorChanged(SensorEvent event) {
Log.d("****", "sens");
TextView val = (TextView)findViewById(R.id.value);
val.setText((event.values[0]) + "");
}

@Override
protected void onResume() {
super.onResume();
mySensorManager.registerListener(this, sensor,
SensorManagerSimulator.SENSOR_DELAY_NORMAL);
//SensorManager m = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
}

@Override
protected void onPause() {
super.onPause();
mySensorManager.unregisterListener(this);
}
}
But the problem is that onSensorChangedListener and onAccuracyAchangedListener methods are never called.

I also put some messages that are printed in my logcat and i think they might be important:

10-13 04:18:49.532: E/cutils-trace(1654): Error opening trace file: No such file or directory (2)
10-13 04:19:05.392: I/Hardware(1679): Starting connection...
10-13 04:19:05.482: I/SensorSimulatorProvider(1342): Query for URL: content://org.openintents.sensorsimulator/settings
10-13 04:19:05.522: I/SensorSimulatorProvider(1342): Query for URL: content://org.openintents.sensorsimulator/settings
10-13 04:19:05.552: I/Hardware(1679): Connecting to 10.0.2.2 : 8010
10-13 04:19:05.572: I/Hardware(1679): Read line...
10-13 04:19:05.603: I/Hardware(1679): Received: SensorSimulator
10-13 04:19:05.603: I/Hardware(1679): Connected
10-13 04:19:05.922: D/gralloc_goldfish(1679): Emulator without GPU emulation detected.
i would be pleased if you could give me any suggestion or guide. Sorry i couldt write very well, my language is not English.
 
I am trying to simulate some sensors like accelerometer on an emulator. I have installed the openintets sensor simulator on my virtual device and connected to it and everything works fine and numbers change in simulator setting tab on emulator when I move the virtual phone. then i run my own app.

This is my mainActivity code:

public class MainActivity extends Activity implements SensorEventListener{

private SensorManagerSimulator mySensorManager;
private Sensor sensor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mySensorManager =
SensorManagerSimulator.getSystemService(this, Context.SENSOR_SERVICE);
sensor = mySensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
RunSimulator run = new RunSimulator();
Thread t = new Thread(run);
t.start();
}

class RunSimulator implements Runnable {
int i = 0;
@Override
public void run() {
Log.d("****", i++ +"");
mySensorManager.connectSimulator();
}
}

@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
Log.d("****", "acc");
TextView acc = (TextView)findViewById(R.id.accuracy);
acc.setText(accuracy + "");
}

@Override
public void onSensorChanged(SensorEvent event) {
Log.d("****", "sens");
TextView val = (TextView)findViewById(R.id.value);
val.setText((event.values[0]) + "");
}

@Override
protected void onResume() {
super.onResume();
mySensorManager.registerListener(this, sensor,
SensorManagerSimulator.SENSOR_DELAY_NORMAL);
//SensorManager m = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
}

@Override
protected void onPause() {
super.onPause();
mySensorManager.unregisterListener(this);
}
}
But the problem is that onSensorChangedListener and onAccuracyAchangedListener methods are never called.

I also put some messages that are printed in my logcat and i think they might be important:

10-13 04:18:49.532: E/cutils-trace(1654): Error opening trace file: No such file or directory (2)
10-13 04:19:05.392: I/Hardware(1679): Starting connection...
10-13 04:19:05.482: I/SensorSimulatorProvider(1342): Query for URL: content://org.openintents.sensorsimulator/settings
10-13 04:19:05.522: I/SensorSimulatorProvider(1342): Query for URL: content://org.openintents.sensorsimulator/settings
10-13 04:19:05.552: I/Hardware(1679): Connecting to 10.0.2.2 : 8010
10-13 04:19:05.572: I/Hardware(1679): Read line...
10-13 04:19:05.603: I/Hardware(1679): Received: SensorSimulator
10-13 04:19:05.603: I/Hardware(1679): Connected
10-13 04:19:05.922: D/gralloc_goldfish(1679): Emulator without GPU emulation detected.
i would be pleased if you could give me any suggestion or guide. Sorry i couldt write very well, my language is not English.

Only advice I can give you is to check your code thoroughly for ANY errors. Maybe you misspelled something or used the wrong punctuation somewhere. Hope this helped!
 
Back
Top Bottom