得到传感器管理器

public class MainActivity extends AppCompatActivity { private SensorManager mSsystemService;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main); mSsystemService = (SensorManager) getSystemService(SENSOR_SERVICE);// 得到传感器管理器getAllSensor();   private void getAllSensor() {        List<Sensor> sensorList = mSsystemService.getSensorList(Sensor.TYPE_ALL);        for (int i = 0; i < sensorList.size(); i++) {            Sensor sensor = sensorList.get(i);            String name = sensor.getName();            String vendor = sensor.getVendor();//  得到生产厂商            int version = sensor.getVersion();//  得到版本            Log.d(TAG, "onCreate:名字===== " + name + "====得到生产厂商-----" + vendor + "===得到版本=====" + version);        }    }}

方向传感器

    /*     * 方向传感器     * 1. 获得传感器方法     * 2. 创建传感器的监听器     * 3.注册传感器。添加监听器     * 4.在监听器的onSensorChanged方法中获取传感器感应到的数据,然后进行业务逻辑的处理     *     * */userOre();  // 方向传感器private void userOre() { SensorManager mSsystemService = (SensorManager) getSystemService(SENSOR_SERVICE);        Sensor otien = mSsystemService.getDefaultSensor(Sensor.TYPE_ORIENTATION);// 获取方向传感器        mSsystemService.registerListener(new Lisenter(), otien, SensorManager.SENSOR_DELAY_NORMAL);//  注册//  方向传感器的监听public class Lisenter implements SensorEventListener {        @Override        public void onSensorChanged(SensorEvent event) {            float value = event.values[0];            Log.d(TAG, "onSensorChanged:方向角度 " + value);        }        @Override        public void onAccuracyChanged(Sensor sensor, int accuracy) {        }    }    }

光传感器的操作

 getLight();//光传感器的操作  SensorManager mSsystemService = (SensorManager) getSystemService(SENSOR_SERVICE);    private void getLight() {           Sensor sensor = mSsystemService.getDefaultSensor(Sensor.TYPE_LIGHT);        mSsystemService.registerListener(lis2, sensor, SensorManager.SENSOR_DELAY_NORMAL);    }    //功能光传感器使用的监听器    private SensorEventListener lis2 = new SensorEventListener() {        @Override        public void onSensorChanged(SensorEvent event) {            if (event.sensor.getType() == Sensor.TYPE_LIGHT) {                float value = event.values[0];                Log.d(TAG, "onSensorLight: 光线强度" + value);            }        }        @Override        public void onAccuracyChanged(Sensor sensor, int accuracy) {        }    };

实现甩歌功能传感器

public class MainActivity extends AppCompatActivity {   private SensorManager mSsystemService;    private MediaPlayer mMp;    private int[] musics = {R.raw.a, R.raw.b, R.raw.c};    int index = 0;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mSsystemService = (SensorManager) getSystemService(SENSOR_SERVICE);/*         * 1.先获取加速度传感器         * 2.创建相关的监听器--在 onSensorChanged 方法中编写         * 3.注册         * 4.运行甩手机测试         * 5.创建Mediaplayer对象播放歌曲,甩的时候播放 准备歌曲仓库         * */        getAccele();//得到加速度传感器,实现甩歌功能   private void getAccele() {        //先播放音乐        mMp = MediaPlayer.create(this, musics[index]);        mMp.start();        Sensor sensor = mSsystemService.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);        //lis1监听器  sensor是感应器  SensorManager.SENSOR_DELAY_NORMAL感应器的灵敏度        mSsystemService.registerListener(lis1, sensor, SensorManager.SENSOR_DELAY_NORMAL);//注册感应器的监听器    }        第一个传感器监听器,为加速度使用    private SensorEventListener lis1 = new SensorEventListener() {        @Override        public void onSensorChanged(SensorEvent event) {            if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {//加速度感应器发生变化                float[] value = event.values;//得到xyz三个方向的数据的变化                float x = value[0];//x轴的新值                float y = value[1];//y轴的新值                float z = value[2];//z轴的新值                Log.i(TAG, "x=" + x + ",y=" + y + ",z=" + z);                if (z > 12) {//甩动切歌                    if (mMp != null) {                        mMp.stop();                        mMp.release();                    }                    index++;//下标加1                    index = index % musics.length;//防止越界                    mMp = MediaPlayer.create(MainActivity.this, musics[index]);                    mMp.start();                }            }        }        @Override        public void onAccuracyChanged(Sensor sensor, int accuracy) {        }    }; }

更多相关文章

  1. Android中ListView以及数组适配器(ArrayAdapter)的使用
  2. Android月历控件(DatePicker)和时间控件(TimePicker)的使用
  3. 《IT蓝豹》吹雪花demo,学习android传感器
  4. Android事件处理之监听事件
  5. Android:Picker(DatePicker、TimerPicker、NumberPicker)日期
  6. Android——使用GridView制作二维布局界面(行、列分布)
  7. 手工下载android sdk或者system images等等
  8. Java事件模型与Android事件模型的比较
  9. Android(安卓)自定义Camera 随笔

随机推荐

  1. android 画图------类似跑马灯的效果
  2. android6.0源码分析之AMS服务源码分析
  3. Android(安卓)如何添加一个apk使模拟器和
  4. Android(安卓)自定义View实现带进度的下
  5. Android应用开发——Activity组件
  6. 解决下载Android(安卓)Build-tools 19.1.
  7. Android之开源中国客户端源码分析(一)
  8. LayoutInflater的inflate方法使用
  9. Android(安卓)Fragment 申请权限 onReque
  10. android 情景模式之响铃+震动获取方法