什么是HSV图像识别传感器 hrv传感器_ide

 

 

 

传感器类型:方向、加速度(重力)、光线、磁场、距离(临近性)、温度等。      方向传感器:    Sensor.TYPE_ORIENTATION      加速度(重力)传感器:  Sensor.TYPE_ACCELEROMETER      光线传感器:     Sensor.TYPE_LIGHT      磁场传感器:    Sensor.TYPE_MAGNETIC_FIELD      距离(临近性)传感器:  Sensor.TYPE_PROXIMITY      温度传感器:    Sensor.TYPE_TEMPERATURE

//获取某种类型的感应器 Sensor sensor = sensorManager.getDefaultSensor( Sensor.TYPE_ACCELEROMETER); //注册监听,获取传感器变化值 sensorManager.registerListener(listener, sensor,   SensorManager.SENSOR_DELAY_GAME);

上面第三个参数为采样率:最快、游戏、普通、用户界面。当应用程序请求特定的采样率时,其实只是对传感器子系统的一个建议,不保证特定的采样率可用。 最快:   SensorManager.SENSOR_DELAY_FASTEST 最低延迟,一般不是特别敏感的处理不推荐使用,该种模式可能造成手机电力大量消耗,由于传递的为原始数据,算法不处理好将会影响游戏逻辑和UI的性能。

游戏:   SensorManager.SENSOR_DELAY_GAME 游戏延迟,一般绝大多数的实时性较高的游戏都使用该级别。

普通:   SensorManager.SENSOR_DELAY_NORMAL

标准延迟,对于一般的益智类或EASY级别的游戏可以使用,但过低的采样率可能对一些赛车类游戏有跳帧现象。

用户界面:   SensorManager.SENSOR_DELAY_UI 一般对于屏幕方向自动旋转使用,相对节省电能和逻辑处理,一般游戏开发中我们不使用。

------------------------------------------------------------------------------------------------

光传感器:

public   class   MainActivity   extends   Activity {

       private   MyListener    listener ;
       private   SensorManager    sensorManager ;
       @Override
       protected   void   onCreate(Bundle savedInstanceState) {
               super .onCreate(savedInstanceState);
            setContentView(R.layout. activity_main);
            
               //得到系统传感器服务:传感器管理者
          sensorManager =(android.hardware.SensorManager) getSystemService( SENSOR_SERVICE   );
            
               //获取谋者类类型的传感器
            Sensor sensor = sensorManager .getDefaultSensor(Sensor. TYPE_LIGHT );     //获取光传感器
            
               listener =   new   MyListener();
               //注册监听器:获取传感器变化值        1.监听器对象    2.要检测的传感器对象    3.采样率
             sensorManager .registerListener(   listener , sensor,   SensorManager . SENSOR_DELAY_GAME   );
      }

      
       /**
       * 监听器内部实现类
       *   @author   Administrator
       *
       */
       private   class   MyListener    implements   SensorEventListener{

               @Override
               public   void   onSensorChanged(SensorEvent event) {
                     float [] values= event.   values ;
                  System.   out .println(   "光信号强弱度:"   +values[0]);
            }

            
               public   void   onAccuracyChanged(Sensor sensor,   int   accuracy) {
                
                  
            }
            
      }
      
       /**
       * 当activity销毁时取消注册监听
       */
       @Override
       protected   void   onDestroy() {
           super .onDestroy();
        
         sensorManager .unregisterListener(   listener );
           listener =   null ;
        
      }
      
      
}

-------------------------------------------------------------------------------------------------


方向传感器:指南针

public   class   MainActivity   extends   Activity {

          private   MyListener    listener ;
        private   SensorManager     sensorManager ;
        private   ImageView    iv ;
      
       @Override
       protected   void   onCreate(Bundle savedInstanceState) {
               super .onCreate(savedInstanceState);
            setContentView(R.layout.   activity_main );
               iv =(ImageView) findViewById(R.id.   iv );
            
               //得到系统传感器服务:传感器管理者
               sensorManager =(android.hardware.SensorManager) getSystemService( SENSOR_SERVICE   );
      
          //获取谋者类类型的传感器
       Sensor sensor =   sensorManager .getDefaultSensor(Sensor.TYPE_ORIENTATION );     //获取方向传感器
      
          listener =   new   MyListener();
          //注册监听器:获取传感器变化值        1.监听器对象    2.要检测的传感器对象    3.采样率
          sensorManager .registerListener(   listener , sensor, SensorManager. SENSOR_DELAY_GAME   );
 }

 
  /**
  * 监听器内部实现类
  *   @author   Administrator
  *
  */
  private   class   MyListener    implements   SensorEventListener{
         //0:north,   90:east   180:south   270:west
           float   startAngle =0;  
      
            @Override
          public   void   onSensorChanged(SensorEvent event) {
               float [] values= event.   values ;
             System.   out .println(   "手机与正北方向的夹角:"   +values[0]);
               //创建旋转动画
             RotateAnimation rotate=   new   RotateAnimation( startAngle ,values[0] ,RotateAnimation.   RELATIVE_TO_SELF   , 0.5f,
                         RotateAnimation.   RELATIVE_TO_SELF , 0.5f);
             rotate.setDuration(30);
               iv .startAnimation(rotate);
            
               startAngle =- values[0];
       }

      
          public   void   onAccuracyChanged(Sensor sensor,   int   accuracy) {
          
            
       }
      
 }
 
  /**
  * 当activity销毁时取消注册监听
  */
  @Override
  protected   void   onDestroy() {
      super .onDestroy();
  
      sensorManager .unregisterListener(   listener );
      listener =   null ;
  
 }
 
 
}