List<Sensor> sensors = manager.getSensorList(Sensor.TYPE_ORIENTATION);まずは、onCreateでSensorを取得し、イベントを登録する部分です。ここでは、取得するセンサーの種類に「Sensor.TYPE_ORIENTATION」を指定しています。これで、傾きセンサーのSensorが取得されます。
if (event.sensor.getType() == Sensor.TYPE_ORIENTATION) {……}もう1箇所は、イベントの処理をするonSensorChangedメソッドです。ここで、発生したイベントの種類をチェックするのに、event.sensor.getTypeの値がSensor.TYPE_ORIENTATIONかどうかを確認しています。これで、傾きセンサーのイベントのときに処理が行われるようになります。
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
package jp.tuyano; import java.util.List; import android.app.Activity; import android.hardware.*; import android.os.Bundle; import android.widget.TextView; public class SampleApp extends Activity implements SensorEventListener { private SensorManager manager; private TextView text1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); text1 = (TextView)this.findViewById(R.id.text); manager = (SensorManager)getSystemService(SENSOR_SERVICE); List<Sensor> sensors = manager.getSensorList(Sensor.TYPE_ORIENTATION); //★ if (sensors.size() > 0) { Sensor sensor = sensors.get(0); manager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_FASTEST); } } @Override public void onAccuracyChanged(Sensor arg0, int arg1) {} @Override public void onSensorChanged(SensorEvent event) { String result = ""; if (event.sensor.getType() == Sensor.TYPE_ORIENTATION) { //★ result = "Z: " + String.valueOf(event.values[0]) + "\n"; result += "X: " + String.valueOf(event.values[1]) + "\n"; result += "Y: " + String.valueOf(event.values[2]); } text1.setText(result); } }
<< 前へ | 次へ >> |