我有一个Galaxy Tab 1000。
我正在尝试编写代码,以识别任何动作。
手机上有2.2版。
这是oncreate代码。
OnCreate()
mySensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mySensorManager.registerListener(mySensorEventListener, mySensorManager
.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_NORMAL); //
这是传感器onsensorchanged实现(我认为非常简单)但不起作用
if (event.sensor.getType() == SensorManager.SENSOR_ACCELEROMETER) // Do WORK
event.sensor.getType()返回1
如果我这样做:getSensorList(Sensor.TYPE_ALL); 我得到传感器指南针,指南针,BMA150(加速),温度,磁铁,接近,光和陀螺仪。
(很奇怪 - 我认为它只在3.0中出现)
请告知,我如何在手机上进行动作检测。
感谢
答案 0 :(得分:1)
我对你想要做的究竟是什么感到有点困惑,但是从我想要的你想要获得onSensorChanged中的加速度数据。你的创建看起来很好,但你可以通过检查从registerListener返回的bool来检查它们是否正确注册了监听器。这是我在监听事件和检索返回值时所做的事情。
@Override
public void onSensorChanged(SensorEvent event)
{
// If the sensor data is unreliable return
if (event.accuracy == SensorManager.SENSOR_STATUS_UNRELIABLE)
{
//Toast.makeText(main.this, "Sensor Status Unreliable",Toast.LENGTH_SHORT).show();
return;
}
// Gets the value of the sensor that has been changed
switch (event.sensor.getType())
{
case Sensor.TYPE_ACCELEROMETER:
m_vAccel = event.values.clone();
break;
}
另外,您也可以使用与加速度计返回减去相同的线性加速度传感器 重力。 http://developer.android.com/reference/android/hardware/SensorEvent.html