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.
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.