androidで照度センサーを試す
まあ、なんとなくわかってたけど
温度センサーとかは使えん(´・ω・`)
値の取得とかしたかったけど取れないので諦める
照度センサー
光の強さで値が大きくなるみたい
ちなみに自分のアパートの証明では60いかなかった
実装
Activity
package jp.mshige1979.app.samapleappsensor2; 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.util.Log; import android.view.Menu; import android.view.MenuItem; import android.widget.TextView; import org.w3c.dom.Text; public class MainActivity extends Activity implements SensorEventListener{ private SensorManager manager; // 照度センサー private Sensor lightSensor; // 表示用 private TextView textview; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //センサーマネージャを取得 manager = (SensorManager) getSystemService(SENSOR_SERVICE); //センサマネージャから照度センサーを指定 lightSensor = manager.getDefaultSensor(Sensor.TYPE_LIGHT); textview = (TextView)findViewById(R.id.textview); textview.setText("照度センサー = "); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { // accuracy に変更があった時の処理 } @Override public void onSensorChanged(SensorEvent event) { Sensor sensor = event.sensor; float[] values = event.values; long timestamp = event.timestamp; // 温度センサー if(sensor.getType() == Sensor.TYPE_LIGHT){ // 温度 Log.d("SENSOR_DATA", "TYPE_LIGHT = " + String.valueOf(values[0])); textview.setText("照度センサー = " + String.valueOf(values[0])); } } @Override protected void onResume() { super.onResume(); // リスナー設定 manager.registerListener (this, lightSensor, SensorManager.SENSOR_DELAY_FASTEST); } @Override protected void onPause() { super.onPause(); // リスナー解除 manager.unregisterListener(this,lightSensor); } }
結果
所感
明かりのあるなしのある程度の判定はできると思う。
使い道はいまいち思う付かないのでとりあえずこれはこのまま保留