得到传感器管理器

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. 《IT蓝豹》吹雪花demo,学习android传感器
  2. 详解Android中的屏幕方向
  3. Android实现动态改变屏幕方向(Landscape & Portrait)
  4. android 骁龙相机预览宽度方向全屏
  5. android 相对定位布局方向 RelativeLayout
  6. Android编程实现屏幕自适应方向尺寸与分辨率的方法
  7. android 相对定位布局方向详解
  8. Android设备功能之传感器教程篇
  9. Android控制水平方向字体缩放android:textScaleX

随机推荐

  1. android传递数据bundle封装传递map对象
  2. 提升Android ListView性能的几个技巧
  3. OkHttp的基本用法
  4. eclipse 调试手机Android
  5. Android(安卓)学习记录-布局预览错误
  6. ImageView图像控件之缩放和旋转
  7. Android事件分发机制浅分析
  8. ubuntu进行配置Android 的NDK环境
  9. weex最新实践,android集成,vue写三端统一的
  10. android Dialog 学习