传感器

 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="\n"+"设备名称:"+s.getName()+"\n设备的版本:"+s.getVersion()+"\n供应商:"+s.getVendor();
17             list.add(str);
18         }
19         text.setText("经检测手机有"+list.size()+"个传感器,分别是:\n"+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("\ny方向的加速度"+values[1]);
50 //                builder.append("\nz方向的加速度:"+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("\ny方向的度量:"+values1[1]);
58                 builder1.append("\nz方向的度量:"+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 }

 

posted @ 2017-11-23 09:46  钱大少丶  阅读(304)  评论(0编辑  收藏  举报