• 传感器


     1 public class MainActivity extends AppCompatActivity implements SensorEventListener{
     2 
     3     private TextView text;
     4 
     5     @Override
     6     protected void onCreate(Bundle savedInstanceState) {
     7         super.onCreate(savedInstanceState);
     8         setContentView(R.layout.activity_main);
     9         initView();
    10 
    11         //获取传感器的管理
    12         SensorManager sensor = (SensorManager) getSystemService(SENSOR_SERVICE);
    13         List<Sensor> sensorList = sensor.getSensorList(Sensor.TYPE_ALL);
    14         ArrayList<String> list = new ArrayList<>();
    15         for (Sensor s:sensorList){
    16             String str="
    "+"设备名称:"+s.getName()+"
    设备的版本:"+s.getVersion()+"
    供应商:"+s.getVendor();
    17             list.add(str);
    18         }
    19         text.setText("经检测手机有"+list.size()+"个传感器,分别是:
    "+list.toString());
    20 
    21 
    22         Sensor msensor1 = sensor.getDefaultSensor(Sensor.TYPE_GAME_ROTATION_VECTOR);
    23         sensor.registerListener(this,msensor1,SensorManager.SENSOR_DELAY_GAME);
    24 
    25         Sensor msensor = sensor.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
    26         //监听事件
    27         sensor.registerListener(this,msensor,SensorManager.SENSOR_DELAY_GAME);
    28 
    29         Sensor light = sensor.getDefaultSensor(Sensor.TYPE_LIGHT);
    30         sensor.registerListener(this,light,SensorManager.SENSOR_DELAY_GAME);
    31 
    32 
    33     }
    34 
    35     private void initView() {
    36         text = (TextView) findViewById(R.id.text);
    37     }
    38 
    39 
    40     @Override
    41     public void onSensorChanged(SensorEvent event) {
    42         int type = event.sensor.getType();
    43         switch (type){
    44 
    45             case Sensor.TYPE_LIGHT:
    46                 float[] values = event.values;
    47                 StringBuilder builder = new StringBuilder();
    48                 builder.append("光感度:"+values[0]);
    49 //                builder.append("
    y方向的加速度"+values[1]);
    50 //                builder.append("
    z方向的加速度:"+values[2]);
    51                 text.setText(builder.toString());
    52                 break;
    53             case Sensor.TYPE_GAME_ROTATION_VECTOR:
    54                 float[] values1 = event.values;
    55                 StringBuilder builder1 = new StringBuilder();
    56                 builder1.append("x方向的度量:"+values1[0]);
    57                 builder1.append("
    y方向的度量:"+values1[1]);
    58                 builder1.append("
    z方向的度量:"+values1[2]);
    59                 text.setText(builder1.toString());
    60                 break;
    61         }
    62 
    63     }
    64 
    65     @Override
    66     public void onAccuracyChanged(Sensor sensor, int accuracy) {
    67 
    68     }
    69 }
  • 相关阅读:
    chrome shortkeys
    五笔xu
    getline()报错解决办法
    PCA程序
    c++矩阵运算库Eigen
    yolo接口
    遇到的编译错误及解决办法
    visual studio command window的使用
    NDK+MSYS2+Android sdk编译opencv源码
    面向对象分析与设计笔记(三)
  • 原文地址:https://www.cnblogs.com/SongYongQian/p/7883314.html
Copyright © 2020-2023  润新知