Android傳感器

一丶傳感器   

    / /拿到傳感器管理器
        SensorManager  sm = (SensorManager) getSystemService(SENSOR_SERVICE) ;
        //拿到手機裏支持的所有的傳感器
        List<Sensor> sensors = sm.getSensorList(Sensor.TYPE_ALL) ;
        for (int i = 0; i < sensors.size(); i++) {
            Sensor sensor = sensors.get(i) ;
            System.out.println(sensor.getName());
        }

eg,光傳感器

public class MainActivity extends Activity {
    private MyListener listener ;
    private SensorManager  sm ;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        //拿到傳感器管理器
        sm = (SensorManager) getSystemService(SENSOR_SERVICE) ;
        //拿到光傳感器
        Sensor light = sm.getDefaultSensor(Sensor.TYPE_LIGHT) ;
        listener = new MyListener() ;
        sm.registerListener(listener, light, SensorManager.SENSOR_DELAY_GAME) ;
    }
    
    private class MyListener implements SensorEventListener{

        //強度變化的時候調用
        @Override
        public void onSensorChanged(SensorEvent event) {
            //拿到光傳感器的強度
            float f = event.values[0] ;
            System.out.println(f);
        }

        //精度發生變化時調用
        @Override
        public void onAccuracyChanged(Sensor sensor, int accuracy) {
            
        }
        
    }
    
    @Override
    protected void onDestroy() {
        //註銷光傳感器的監聽器
        sm.unregisterListener(listener) ;
        super.onDestroy();
    }
    
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章