package com.example.android.recipe072; import java.util.List; import android.app.Activity; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.Bundle; import android.widget.TextView; public class Recipe072 extends Activity implements SensorEventListener { private TextView mTextView; private SensorManager mSensorManager; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mTextView = (TextView)findViewById(R.id.text); mSensorManager = (SensorManager)getSystemService( SENSOR_SERVICE); } @Override protected void onResume() { super.onResume(); // 明るさセンサーを取得 List<Sensor> list = mSensorManager.getSensorList(Sensor.TYPE_LIGHT); // 取得できなければ何もしない if (list.size() < 1) return; // 明るさセンサーを取得 Sensor sensor = list.get(0); // 明るさセンサーにリスナーを登録 // 第3引数で感度を指定できます。 mSensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_NORMAL); } @Override public void onPause() { super.onPause(); // リスナーを解除 mSensorManager.unregisterListener(this); } public void onAccuracyChanged(Sensor sensor, int accuracy) { } // センサーの値が変化したら呼び出される public void onSensorChanged(SensorEvent event) { // 明るさセンサー以外は何もしない。 if (event.sensor.getType() != Sensor.TYPE_LIGHT) { return; } // 値を取得 float value = event.values[0]; // TextViewに表示! mTextView.setText("ただいまの明るさは" + value + "lxです!"); } }