过去做过一些 Android 开发,但已经有一段时间了 - 想要构建一个使用方向和接近传感器的应用程序。所以...
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ALL) , SensorManager.SENSOR_DELAY_GAME);
所以设置监听器 - 监听所有传感器 - 想知道我应该只听两个吗?(这会节省电池吗?)
Sensor mySensor = event.sensor;
// if (mySensor.getType() != Sensor.TYPE_ORIENTATION) return;
if (mySensor.getType() == Sensor.TYPE_ORIENTATION)
{
float x = event.values[0];
float y = event.values[1];
float z = event.values[2];
tv.setText("Rotation around X, Azimuth = " + x);
tv1.setText("Rotation around Y, Pitch = " + y);
tv2.setText("Rotation around Z, Roll = " + z);
}
if (mySensor.getType() == SensorManager.SENSOR_PROXIMITY)
{
float p = event.values[0];
tv3.setText("Proximity = " + p);
}
然后在 onSensorChanged - 见上文
在我的 LG Optimus One 上,我可以让它显示方向传感器的 TextViews 中的值(这款手机没有接近传感器)
但是在我的 Nexus One 上运行相同的代码会导致一个可爱的空白屏幕!?
对不起,很长的问题!但任何帮助都会很好,如果您需要更多信息,请询问,LG 手机是 2.2 Nexus One 是 2.2.2 谢谢,
大卫