Android特色开发之传感器和语音识别
}
}
protected void onPause()
{
if (mRegisteredSensor)
{
//如果调用了registerListener
//这里我们需要unregisterListener来卸载/取消注册
mSensorManager.unregisterListener(this);
mRegisteredSensor = false;
}
super.onPause();
}
//当精准度发生改变时
//sensor->传感器
//accuracy->精准度
public void onAccuracyChanged(Sensor sensor, int accuracy)
{
//处理精准度改变
}
// 当传感器在被改变时触发
public void onSensorChanged(SensorEvent event)
{
// 接收方向传感器的类型
if (event.sensor.getType() == Sensor.TYPE_ORIENTATION)
{
//这里我们可以得到数据,然后根据需要来处理
//由于模拟器上面无法测试效果,因此我们暂时不处理数据
float x = event.values[SensorManager.DATA_X];
float y = event.values[SensorManager.DATA_Y];
float z = event.values[SensorManager.DATA_Z];
}
}
}
上面的例子中演示了如何获得方向传感器的方向、加速度等信息,我们可以根据得到的数值与上一次得到的数值之间的关系来进行需要的操作。SensorManager中还有很多常量和一些常用的方法,如下:
getDefaultSensor:得到默认的传感器对象。
getInclination:得到地磁传感器倾斜角的弧度值。
getOrientation:得到设备旋转的方向。
getSensorList:得到指定传感器的列表。
评论