Android的传感器共有13种(百度说的。。。我也不懂是哪十三种),比较普片的有:
Sensor.TYPE_ACCELEROMETER:加速度传感器
Sensor.TYPE_GYROSCOPE:陀螺仪传感器
Sensor.TYPE_LIGHT:亮度传感器
Sensor.TYPE_MAGNETIC_FIELD:地磁传感器
Sensor.TYPE_ORIENTATION:方向传感器
Sensor.TYPE_PRESSURE:压力传感器
Sensor.TYPE_PROXIMITY:近程传感器
Sensor.TYPE_TEMPERATURE:温度传感器
我们要说的是其中比较普遍的加速度传感器,Android中的加速度传感器有三个方向,分别是x,y,z,对空间的三维,可能态抽象了,上图吧:
看完这图,应该,,至少懂了百分之十吧,然后就先讲解下代码下怎么获得加速度
1.1首先,要定义一个sensormanager,顾名思义,这是对Android传感器的管理,可以简单的理解为他是一个管家,管理者一所房子,并且拥有着各个传感器的门派号
所以,首先要取得他的同意(取得服务),然后再定义一个sensor,相当于房间号(取得传感器的类型),然后就去注册。。。。。。。当然那,实际上不是这样的,这是欧文的胡诌,所以还是个上代码吧
import java.util.List;
//对加速度传感器的补充
//0.1首先zxdj一个服务:sensormanager
//0.2zxdj一个类型:sensor
//0.3注册
//1.1注销
import android.app.Activity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.Toast;
public class MainActivity extends Activity{
SensorManager sensormanager;
Sensor sensor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sensormanager=(SensorManager) getSystemService(Context.SENSOR_SERVICE);//获得服务
Sensor sensor=sensormanager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);//类型
//注册
sensormanager.registerListener(new sensorlistener(), sensor,SensorManager.SENSOR_DELAY_NORMAL);//注意,是三个参数的
//关于第三个参数的区别,共有四个类别,是在于时间,详情查询api
}
@Override
protected void onDestroy() {
super.onDestroy();
sensormanager.unregisterListener(new sensorlistener());
}
//监听事件
class sensorlistener implements SensorEventListener{
@Override
public void onSensorChanged(SensorEvent event) {
float xValue = Math.abs(event.values[0]);
float yValue = Math.abs(event.values[1]);
float zValue = Math.abs(event.values[2]);
if (xValue > 15 || yValue > 15 || zValue > 15) {
//为了不会一直显示
Toast.makeText(MainActivity.this, xValue+"",
Toast.LENGTH_SHORT).show();}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
}
}
千言万语,不如一段代码,如果有时间再写一篇关于sensormanager的博客,各位看官,晚安