Android——传感器简介

一、传感器类型
  1. 方向传感器:Sensor.TYPE_ORIENTATION
  2. 光线传感器:Sensor.TYPE_LIGHT
  3. 磁场传感器:Sensor.TYPE_MAGETIC_FIELD
  4. 温度传感器:Sensor.TYPE_AMBIENT_TEMPERATURE
  5. 加速度传感器:Sensor.TYPE_ACCELEROMETER
  6. 陀螺仪传感器:Sensor.TYPE_GYROSCOPE
二、使用方法

获取某种类型传感器:

Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);

注册监听,获取传感器变化值:

sensorManager.registerListener(listener, sensor, SensorManager.SENSOR_DELAY_GAME);
第三个参数为采样率,分别为最快、游戏、普通、用户界面。

  • 最快:SensorManager.SENSOR_DELAY_FASTEST
    最低延迟,对手机电力大量消耗。不是特别敏感的传感器不推荐使用。
  • 游戏:SensorManager.SENSOR_DELAY_GAME
    游戏延迟,大多数游戏使用
  • 普通:SensorManager.SENSOR_DELAY_NORMAL
    标准延迟,对于一般的益智类游戏可以使用
  • 用户界面:SensorManager.SENSOR_DELAY_UI
    用于屏幕方向自动旋转,相对节省电量
三、实例
public class MainActivity extends AppCompatActivity {

    private SensorManager sensorManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //获取SensorManager
        sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);

        //获取Sensor
        Sensor sensor = sensorManager.getDefaultSensor(SensorManager.SENSOR_ORIENTATION);

        //注册监听
        sensorManager.registerListener(new SensorEventListener() {
            @Override
            public void onSensorChanged(SensorEvent sensorEvent) {
                float[] values = sensorEvent.values;
                float value = values[0];
                Toast.makeText(MainActivity.this, "方向:"+value, Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onAccuracyChanged(Sensor sensor, int i) {

            }
        }, sensor, SensorManager.SENSOR_DELAY_GAME);
    }
}

以上这些就是该博文,希望能帮助到你,谢谢!

猜你喜欢

转载自blog.csdn.net/weixin_42164949/article/details/80867487