zoukankan      html  css  js  c++  java
  • Android 传感器简记

    显示所有传感器

    sm = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
    
    List<Sensor> allSensors = sm.getSensorList(Sensor.TYPE_ALL);
    StringBuilder sb = new StringBuilder();
    
    sb.append("此手机有" + allSensors.size() + "个传感器,分别有:
    
    ");
    for(Sensor s:allSensors){
         switch (s.getType()){
            case Sensor.TYPE_ACCELEROMETER:
                sb.append(s.getType() + " 加速度传感器(Accelerometer sensor)" + "
    ");
                break;
             case Sensor.TYPE_GYROSCOPE:
                sb.append(s.getType() + " 陀螺仪传感器(Gyroscope sensor)" + "
    ");
                break;
             case Sensor.TYPE_LIGHT:
                sb.append(s.getType() + " 光线传感器(Light sensor)" + "
    ");
                break;
             case Sensor.TYPE_MAGNETIC_FIELD:
                sb.append(s.getType() + " 磁场传感器(Magnetic field sensor)" + "
    ");
                break;
             case Sensor.TYPE_ORIENTATION:
                 sb.append(s.getType() + " 方向传感器(Orientation sensor)" + "
    ");
                 break;
             case Sensor.TYPE_PRESSURE:
                 sb.append(s.getType() + " 气压传感器(Pressure sensor)" + "
    ");
                  break;
             case Sensor.TYPE_PROXIMITY:
                  sb.append(s.getType() + " 距离传感器(Proximity sensor)" + "
    ");
                  break;
              case Sensor.TYPE_TEMPERATURE:
                  sb.append(s.getType() + " 温度传感器(Temperature sensor)" + "
    ");
                  break;
              default:
                  sb.append(s.getType() + " 其他传感器" + "
    ");
                  break;
       }
    sb.append(" 设备名称:" + s.getName() + "
     设备版本:" + s.getVersion()
           +"
     设备精度"+ s.getResolution()+"
     设备最大范围"+s.getMaximumRange()
            +"
     设备耗电量"+s.getPower()+"
     供应商:" +s.getVendor() + "
    
    ");
    }
    txt_show.setText(sb.toString());
    

    使用简例

    陀螺仪

    public class OritionSensorActivity extends AppCompatActivity implements SensorEventListener 
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_oritionsensor);
    
        sManager = (SensorManager) getSystemService(SENSOR_SERVICE);
        mSensorOrientation = sManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
        sManager.registerListener(this, mSensorOrientation, SensorManager.SENSOR_DELAY_UI);
    
    }
    
    @Override
    public void onSensorChanged(SensorEvent event) {
        tv_value1.setText("方位角:" + (float) (Math.round(event.values[0] * 100)) / 100);
        tv_value2.setText("倾斜角:" + (float) (Math.round(event.values[1] * 100)) / 100);
        tv_value3.setText("滚动角:" + (float) (Math.round(event.values[2] * 100)) / 100);
    }
    
    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
    
    }
    
    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (sManager != null) {
          sManager.unregisterListener(this);
       }
    }
    

    光线传感器

    public class LightSensorActivity extends AppCompatActivity implements SensorEventListener
    
    SensorManager sensorManager ;
    Sensor sensor ;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_lightsensor);
    
            find();
            sensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
            sensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
            sensorManager.registerListener(this,sensor,sensorManager.SENSOR_DELAY_FASTEST);
        }
    
        @Override
        public void onSensorChanged(SensorEvent sensorEvent) {
            tv_light.setText(sensorEvent.values[0]+"");
            sb_light.setClickable(false);
            sb_light.setProgress((int) sensorEvent.values[0],true);
        }
    
        @Override
        public void onAccuracyChanged(Sensor sensor, int i) {
    
        }
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
            if (sensorManager != null) {
                sensorManager.unregisterListener(this);
            }
        }
    
  • 相关阅读:
    LeetCode 1275. 找出井字棋的获胜者 Find Winner on a Tic Tac Toe Game
    LeetCode 307. 区域和检索
    LeetCode 1271 十六进制魔术数字 Hexspeak
    秋实大哥与花 线段树模板
    AcWing 835. Trie字符串统计
    Leetcode 216. 组合总和 III
    Mybatis 示例之 复杂(complex)属性(property)
    Mybatis 示例之 复杂(complex)属性(property)
    Mybatis 高级结果映射 ResultMap Association Collection
    Mybatis 高级结果映射 ResultMap Association Collection
  • 原文地址:https://www.cnblogs.com/Mr-quin/p/8585133.html
Copyright © 2011-2022 走看看