android的光照、加速度传感器

android的传感器,用法大致一致,所以知道一两个的用法,基本都能很轻松的使用其他传感器。

监听接口那需要传三个参数,第一个是listener的实例,第二个是Sensor的实例,第三个是模式,有四种值可选:
SENSOR_DELAY_UI,
SENSOR_DELAY_NORMAL,
SENSOR_DELAY_GAME,
SENSOR_DELAY_FASTEST.
他们的更新速率依次递增.

android中的传感器大致分为:
SENSOR_TYPE_ACCELEROMETER 1 //加速度
SENSOR_TYPE_MAGNETIC_FIELD 2 //磁力
SENSOR_TYPE_ORIENTATION 3 //方向
SENSOR_TYPE_GYROSCOPE 4 //陀螺仪
SENSOR_TYPE_LIGHT 5 //光线感应
SENSOR_TYPE_PRESSURE 6 //压力
SENSOR_TYPE_TEMPERATURE 7 //温度
SENSOR_TYPE_PROXIMITY 8 //接近
SENSOR_TYPE_GRAVITY 9 //重力
SENSOR_TYPE_LINEAR_ACCELERATION 10//线性加速度
SENSOR_TYPE_ROTATION_VECTOR 11//旋转矢量

public class MainActivity extends AppCompatActivity {    @Bind(R.id.light_sensor_txt)    TextView lightSensorTxt;    private SensorManager sensorManager;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ButterKnife.bind(this);        //获取sensorManager是所有传感器的管理器        sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);        /**         * 光照传感器,sensor获取光照传感器         * listener监听接口,需要重写两个方法         * registerListener需要注册         */        Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);        sensorManager.registerListener(listener_light, sensor, SensorManager.SENSOR_DELAY_FASTEST);        /**         * 加速传感器,sensor获取加速传感器         * listener监听接口,需要重写两个方法         * registerListener需要注册         */        Sensor sensor_Acceleromeater = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);        sensorManager.registerListener(listener_accelerometer, sensor_Acceleromeater, SensorManager.SENSOR_DELAY_NORMAL);        /**         * 方向传感器         */       // Sensor sensor_orientation = sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);    }    /**     * 程序退出 一定要取消注册,释放资源     */    @Override    protected void onDestroy() {        super.onDestroy();        if (sensorManager != null) {            sensorManager.unregisterListener(listener_light);            sensorManager.unregisterListener(listener_accelerometer);        }    }    /**     * 加速的传感器监听是有三个数据xyz在value[]数组里面的     * 加速度可以触发微信摇一摇的玩法,把摇一摇逻辑写在里面     */    private SensorEventListener listener_accelerometer = new SensorEventListener() {        @Override        public void onSensorChanged(SensorEvent sensorEvent) {            float xValue = Math.abs(sensorEvent.values[0]);            float yValue = Math.abs(sensorEvent.values[1]);            float zValue = Math.abs(sensorEvent.values[2]);            if(xValue>15||yValue>15||zValue>15){                Toast.makeText(MainActivity.this, "摇一摇呦!", Toast.LENGTH_SHORT).show();            }        }        /**         *传感器精度发生变化才会调用该方法里面         */        @Override        public void onAccuracyChanged(Sensor sensor, int i) {        }    };    /**     * 光照监听接口的数据就在value[]数组里面,取出即可     */    private SensorEventListener listener_light = new SensorEventListener() {        @Override        public void onSensorChanged(SensorEvent sensorEvent) {            float value = sensorEvent.values[0];            lightSensorTxt.setText("光照强度:" + value + "lx");        }        /**         * 传感器精度发生变化才会调用该方法里面         */        @Override        public void onAccuracyChanged(Sensor sensor, int i) {        }    };}

更多相关文章

  1. Android接口和框架学习
  2. android中度量坐标 传感器应用的开发
  3. Android http请求使用接口回调
  4. Android Adapter 接口中几个方法的研究
  5. Android framework/base 下添加新的接口
  6. Sensor传感器源码的阅读与应用开发简单实例
  7. 带你了解Android接口回调机制
  8. Android AIDL接口定义语言

随机推荐

  1. android初体验――HelloWord
  2. Android(安卓)Json的使用(1) 使用jsonschem
  3. Android中Activity之间的数据传递(Intent
  4. Android如何找到正确的ALSA底层kcontrol
  5. 给 Android(安卓)开发者的 Flutter 指南
  6. 阿拉伯语系处理方法
  7. delphi xe5 android iny绿色版+最新SDK/N
  8. Android学习――HorizontalScollview水平
  9. Android设置AlertDialog点击按钮对话框不
  10. layout_weight属性图解