zoukankan      html  css  js  c++  java
  • Android 光线传感器的调用

    1.activity如果要使用传感器,就必须实现SensorEventListener接口

    2.得到传感器管理对象(sensormanager)

    3.使用sensormanager.registerlistener 方法注册指定的传感器

    4.在sensoreventlistener 接口中的onsensorchanged和onaccuracychanged方法中完成其他具体工作

    public class TestActivity extends Activity {
    
        private SensorManager sensorManager;
        //第三步:对传感器信号进行监听
        private SensorEventListener listener = new SensorEventListener() {
            @Override
            public void onSensorChanged(SensorEvent event) {
                //提示当前光照强度
                Toast.makeText(TestActivity.this,
                        "当前光照强度:" + event.values[0] + "勒克斯", Toast.LENGTH_SHORT).show();
            }
    
            @Override
            public void onAccuracyChanged(Sensor sensor, int accuracy) {
    
            }
        };
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //第一步:获取 SensorManager 的实例
            sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
            //第二步:获取 Sensor 传感器类型
            Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
            //第四步:注册 SensorEventListener
            sensorManager.registerListener(listener,sensor,SensorManager.SENSOR_DELAY_NORMAL);
        }
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
            //传感器使用完毕,释放资源
            if(sensorManager!=null){
                sensorManager.unregisterListener(listener);
            }
        }
    }

    ===================传感器类型=========================

       加速传感器(Sensor.TYPE_ACCELEROMETER)

       磁场传感器(Sensor.TYPE_MAGNETIC_FLELD)

       光线传感器 (Sensor.TYPE_LIGHT )

       方向传感器 (TYPE_ORIENTATION)

    ===================Values数值========================

     Accelerometer(加速传感器)

     values[0] :沿x轴方向加速度

     values[1]: 沿 y 轴方向的加速度

     values[2] : 沿 z 轴方向的加速度,也就是重力加速度

     

    Gravity(重力感应器)

    values数组中的三个元素分别代表x轴,y轴,z轴的重力大小

     

    Light(光线传感器)

    values数组只有第一个元素values[0]有意义,表示光线的强度,最大值是120000.0f.

     

    Gyroscope( 陀螺传感器)

    values,分别表示x,y,z轴的旋转的角速度

     

    Orientation(方向传感器)

    values[0] : 该值表示方位,也就是手机绕着z轴旋转的角度. 0表示北(north),90表示动(east),180表示南(south),270表示西(west)

    values[1]:表示倾斜度. x 轴倾斜时,该值变化,-180<= vaules[1] <= 180

    values[2]: 表示沿y轴的滚动角度,-90<=values[2] <=90

    在android2.3 sdk中,并不推荐使用sensor.TYPE_ORIENTATION,values[0]值,有时会出现异常。官方推荐使用SensorManager.getOrientaion的方法来获得正确的方向 

    ===================数值更新速度========================

      SENSOR_DELAY_FASTEST: 以最快的速度获得传感器数据

      SENSOR_DELAY_GAME: 适合与在游戏中获得传感器数据

      SENSOR_DELAY_NORMAL: 以一般的速度获得传感器数据

      SENSOR_DELAY_UI:适合于在ui空间中获得数据

  • 相关阅读:
    Maven CXF wsdl2Java String生成JAXBElement<Xxx> 解决方法
    Maven私服(Nexus)资源上传下载
    Maven私服(Nexus)启动创建Windows服务
    第三方jar上传到Maven私服(Nexus)
    Maven下CXF的wsdl2java生成客户端代码
    [解决]CXF wsdl2java 生成代码存在的一些问题
    Link Shell Extension
    Weblogic环境(JSP)文件下载问题(下载的文件与原文件大小不一致问题)
    腾讯QQ形象18年变迁史,最早的QQ企鹅形象居然长这样!
    为何称她为“互联网女皇”?知道真相后不得不佩服!
  • 原文地址:https://www.cnblogs.com/woider/p/5348993.html
Copyright © 2011-2022 走看看