安卓开发之方向传感器
2016-11-17 17:27
363 查看
private SensorManager sensorManager;
oncreate()
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
Sensor magneticSensor = sensorManager
.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
Sensor accelerometerSensor = sensorManager
.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
sensorManager.registerListener(listener, magneticSensor,
SensorManager.SENSOR_DELAY_GAME);
sensorManager.registerListener(listener, accelerometerSensor,
SensorManager.SENSOR_DELAY_GAME);
@Override
protected void onDestroy()
{
super.onDestroy();
if (sensorManager != null)
{
sensorManager.unregisterListener(listener);
}
}
private SensorEventListener listener = new SensorEventListener()
{
float[] accelerometerValues = new float[3];
float[] magneticValues = new float[3];
@Override
public void onSensorChanged(SensorEvent event)
{
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER)
{
accelerometerValues = event.values.clone();
}
else if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD)
{
magneticValues = event.values.clone();
}
float[] values = new float[3];
float[] R = new float[9];
SensorManager.getRotationMatrix(R, null, accelerometerValues,magneticValues);
SensorManager.getOrientation(R, values);
float angle = (float)Math.toDegrees(values[1]);//x
float angle1 = (float)Math.toDegrees(values[2]);//y
float angle2 = (float)Math.toDegrees(values[0]);//z
tv.setText("x轴:"+angle+"\n"+"y轴:"+angle1+"\n"+"z轴:"+angle2);//设置一个textview控件显示
}
}
平放:
x = 0,
y = 0,
z(0-180)(-180-0)
侧放:
x = 0,
y(0-180)(-180-0)
z(0-180)(-180-0)
竖放:
x(0--90)(-90-0)(0-90)(90-0)
y乱码
z(0-180)(-180-0)
oncreate()
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
Sensor magneticSensor = sensorManager
.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
Sensor accelerometerSensor = sensorManager
.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
sensorManager.registerListener(listener, magneticSensor,
SensorManager.SENSOR_DELAY_GAME);
sensorManager.registerListener(listener, accelerometerSensor,
SensorManager.SENSOR_DELAY_GAME);
@Override
protected void onDestroy()
{
super.onDestroy();
if (sensorManager != null)
{
sensorManager.unregisterListener(listener);
}
}
private SensorEventListener listener = new SensorEventListener()
{
float[] accelerometerValues = new float[3];
float[] magneticValues = new float[3];
@Override
public void onSensorChanged(SensorEvent event)
{
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER)
{
accelerometerValues = event.values.clone();
}
else if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD)
{
magneticValues = event.values.clone();
}
float[] values = new float[3];
float[] R = new float[9];
SensorManager.getRotationMatrix(R, null, accelerometerValues,magneticValues);
SensorManager.getOrientation(R, values);
float angle = (float)Math.toDegrees(values[1]);//x
float angle1 = (float)Math.toDegrees(values[2]);//y
float angle2 = (float)Math.toDegrees(values[0]);//z
tv.setText("x轴:"+angle+"\n"+"y轴:"+angle1+"\n"+"z轴:"+angle2);//设置一个textview控件显示
}
}
平放:
x = 0,
y = 0,
z(0-180)(-180-0)
侧放:
x = 0,
y(0-180)(-180-0)
z(0-180)(-180-0)
竖放:
x(0--90)(-90-0)(0-90)(90-0)
y乱码
z(0-180)(-180-0)
相关文章推荐
- 安卓开发_慕课网_百度地图_实现方向传感器
- 【Android游戏开发十八】解放手指,利用传感器开发游戏!(本文讲解在SurfaceView中用重力传感器控制圆球的各方向移动)
- 【Android2D游戏开发十八】解放手指,利用传感器开发游戏!(本文讲解在SurfaceView中用重力传感器控制圆球的各方向移动)
- 安卓中如何使用Sensor simulator 在模拟器上进行传感器开发
- 2014年 阿里巴巴暑期实习生招聘面试经验 客户端(移动开发,安卓)开发方向
- 安卓 方向传感器The field Sensor.TYPE_ORIENTATION is deprecated use SensorManager.getOrientation()instead介绍
- 【Android游戏开发十八】解放手指,利用传感器开发游戏!(本文讲解在SurfaceView中用重力传感器控制圆球的各方向移动)
- 安卓传感器开发之指南针
- Windows 8 应用开发权威指南 之 检测方向的传感器(3)确定设备方向
- Windows 8 应用商店应用开发 之 检测方向的传感器(2)方向传感器
- android 传感器使用与开发----方向传感器
- 18—解放手指,利用传感器开发游戏!(本文讲解在SurfaceView中用重力传感器控制圆球的各方向移动)
- Android开发之方向传感器的使用
- 【Android游戏开发十八】解放手指,利用传感器开发游戏!(本文讲解在SurfaceView中用重力传感器控制圆球的各方向移动)
- Windows 8 应用开发权威指南 之 检测方向的传感器(3)确定设备方向
- Windows 8 应用商店应用开发 之 检测方向的传感器(1)指南针
- 【Android2D游戏开发十八】解放手指,利用传感器开发游戏!(本文讲解在SurfaceView中用重力传感器控制圆球的各方向移动)
- 【Android游戏开发十八】解放手指,利用传感器开发游戏!(本文讲解在SurfaceView中用重力传感器控制圆球的各方向移动)
- Android开发之方向传感器的使用
- 【Android游戏开发十八】解放手指,利用传感器开发游戏!(本文讲解在SurfaceView中用重力传感器控制圆球的各方向移动)