加速度センサーを使う
参考:http://www.adakoda.com/android/000182.html
AndroidManifest.xmlにpermissionを書く必要は無い
SDK9向けに書いた
package org.shokai; 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.util.Log; import android.widget.TextView; public class Main extends Activity implements SensorEventListener { private SensorManager sm; private TextView textViewTrace; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); textViewTrace = (TextView) this.findViewById(R.id.TextViewTrace); sm = (SensorManager) this.getSystemService(SENSOR_SERVICE); } @Override protected void onResume() { super.onResume(); List<Sensor> sensors = sm.getSensorList(Sensor.TYPE_ACCELEROMETER); if (sensors.size() > 0) { Sensor sensor = sensors.get(0); sm.registerListener(this, sensor, SensorManager.SENSOR_DELAY_FASTEST); } } @Override protected void onStop() { sm.unregisterListener(this); super.onStop(); } public void onAccuracyChanged(Sensor sensor, int accuracy) { trace("onAccuracyChanged : " + accuracy); } public void onSensorChanged(SensorEvent event) { if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) { trace("onSensorChanged : " + event.sensor.getName() + " : " + ",x:" + event.values[0] + ", y:" + event.values[1] + ", z:" + event.values[2]); } } public void trace(String msg) { Log.v("AccelTest", msg); this.textViewTrace.setText(msg); } }