標籤:tostring txt string res vendor lis null com activity
顯示所有感應器
sm = (SensorManager) getSystemService(Context.SENSOR_SERVICE);List<Sensor> allSensors = sm.getSensorList(Sensor.TYPE_ALL);StringBuilder sb = new StringBuilder();sb.append("此手機有" + allSensors.size() + "個感應器,分別有:\n\n");for(Sensor s:allSensors){ switch (s.getType()){ case Sensor.TYPE_ACCELEROMETER: sb.append(s.getType() + " 加速度感應器(Accelerometer sensor)" + "\n"); break; case Sensor.TYPE_GYROSCOPE: sb.append(s.getType() + " 陀螺儀感應器(Gyroscope sensor)" + "\n"); break; case Sensor.TYPE_LIGHT: sb.append(s.getType() + " 光線感應器(Light sensor)" + "\n"); break; case Sensor.TYPE_MAGNETIC_FIELD: sb.append(s.getType() + " 磁場感應器(Magnetic field sensor)" + "\n"); break; case Sensor.TYPE_ORIENTATION: sb.append(s.getType() + " 方向感應器(Orientation sensor)" + "\n"); break; case Sensor.TYPE_PRESSURE: sb.append(s.getType() + " 氣壓感應器(Pressure sensor)" + "\n"); break; case Sensor.TYPE_PROXIMITY: sb.append(s.getType() + " 距離感應器(Proximity sensor)" + "\n"); break; case Sensor.TYPE_TEMPERATURE: sb.append(s.getType() + " 溫度感應器(Temperature sensor)" + "\n"); break; default: sb.append(s.getType() + " 其他感應器" + "\n"); break; }sb.append(" 裝置名稱:" + s.getName() + "\n 裝置版本:" + s.getVersion() +"\n 裝置精度"+ s.getResolution()+"\n 裝置最大範圍"+s.getMaximumRange() +"\n 裝置耗電量"+s.getPower()+"\n 供應商:" +s.getVendor() + "\n\n");}txt_show.setText(sb.toString());
使用簡例陀螺儀
public class OritionSensorActivity extends AppCompatActivity implements SensorEventListener
@Overrideprotected 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);}@Overridepublic 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);}@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {}@Overrideprotected 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); } }
Android 感應器簡記