当前位置:操作系统 > 安卓/Android >>

Android开发--传感器介绍

获取手机中的传感器的步骤为:
获取SensorManager对象
执行SensorManager对象的getDefaultSensor()方法获取Sensor对象,这里getDefaultSensor()方法要传递一个参数,指定具体的传感器类型
获取Sensor对象中的各种属性
下面给出获取手机内传感器的实现代码:
[java]  
Log.d("BruceZhang", "以下是你的手机里的传感器:");  
            List<Sensor> sensors=sensorManager.getSensorList(Sensor.TYPE_ALL);  
            Log.d("BruceZhang", "--->");  
            for(Sensor sensor: sensors){  
                Log.d("BruceZhang", sensor.getName());  
            }  
            //通过使用getDefaultSensor方法获得一个特定的传感器  
/               Sensor sensor=sensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY);  
 
在知道怎么获取传感器之后,我们需要使用程序获取传感器的值,下面给出实例代码:
[java]  
SensorManager sensorManager=(SensorManager)getSystemService(Context.SENSOR_SERVICE);  
        Sensor sensor=sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);  
          
        sensorManager.registerListener(new SensorEventListener() {  
              
            /* 
             * SensorEvent event 
             * 一旦传感器感知外界条件发生变化,就会把相应的数据传递给这个对象 
             * 一般会把这个方法放在onCreate里,不用手动的去获取 
             */  
            @Override  
            public void onSensorChanged(SensorEvent event) {  
                // TODO Auto-generated method stub  
                float auc=event.accuracy;  
                //这里的第一个元素代表的是光线的强度  
                float lux=event.values[0];  
                Log.d("BruceZhang", auc+"");  
                Log.d("BruceZhang", lux+"");  
                  
            }  
              
            @Override  
            public void onAccuracyChanged(Sensor sensor, int accuracy) {  
                // TODO Auto-generated method stub  
                  
            }  
        }, sensor, SensorManager.SENSOR_DELAY_NORMAL);  
        //SensorManager.SENSOR_DELAY_NORMAL  
        //这个参数就是设置传感器的采样率  
    }  
 
传感器有一系列的属性:
1、传感器的采样率
  a) SENSOR_DELAY_NOMAL    (200000微秒)
  b) SENSOR_DELAY_UI       (60000微秒)
  c) SENSOR_DELAY_GAME     (20000微秒)
  d) SENSOR_DELAY_FASTEST  (0微秒)
  
2、传感器的属性
  a) 传感器的名称
  b) 传感器制造商
  c) 传感器功率
  d) 传感器的resulotion
 
获取这些属性的方法也很简单,代码如下:
[java] 
SensorManager sensorManager=(SensorManager)getSystemService(Context.SENSOR_SERVICE);  
                Sensor sensor=sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);  
                  
                sensorManager.registerListener(new SensorEventListener() {  
                      
                    @Override  
                    public void onSensorChanged(SensorEvent event) {  
                        // TODO Auto-generated method stub  
                          
                        //传感器的名字  
                        String sensorName=event.sensor.getName();  
                        //传感器制造商的名字  
                        String sensorVendor=event.sensor.getVendor();  
                        //传感器的分辨率,传感器所能识别的最小的精度是多少  
                        float sensorRevolution=event.sensor.getResolution();  
                        //传感器的功率  
                        float sensorPower=event.sensor.getPower();  
                        //传感器取得数据的时间是多少  
                        double timeStamp=event.timestamp;  
                          
                        //打印数据  
                        Log.d("BruceZhang", sensorName+"");  
                        Log.d("BruceZhang", sensorVendor+"");  
                        Log.d("BruceZhang", sensorRevolution+"");  
                        Log.d("BruceZhang", sensorPower+"");  
                        Log.d("BruceZhang", timeStamp+"&quo
补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,