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);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值