package com.example.sensor;

import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.widget.EditText;


public class SensorActivity extends ActionBarActivity implements SensorEventListener {
EditText vi;
int count=0;
String str = String.format("%d",count);
    private long lastTime;
    private float speed;
    private float lastX;
    private float lastY;
    private float lastZ;
    private float x, y, z;
    private static final int SHAKE_THRESHOLD = 800;
private static final int DATA_X = SensorManager.DATA_X;
    private static final int DATA_Y = SensorManager.DATA_Y;
    private static final int DATA_Z = SensorManager.DATA_Z;
    private SensorManager sensorManager;
    private Sensor accelerormeterSensor;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    vi = (EditText)findViewById(R.id.tv);
    vi.setText(str);
        super.onCreate(savedInstanceState);
        sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
        accelerormeterSensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
        setContentView(R.layout.main);
        vi.setClickable(false);
        vi.setFocusable(false);
    }
    
    @Override
    public void onStart() {
        super.onStart();
        if (accelerormeterSensor != null)
            sensorManager.registerListener(this, accelerormeterSensor, SensorManager.SENSOR_DELAY_GAME);
    }
    
    @Override
    public void onStop() {
        super.onStop();
        if (sensorManager != null)
        sensorManager.unregisterListener(this);
    }


    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
    
    }
    @Override

    public void onSensorChanged(SensorEvent event) {
    if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {

long currentTime = System.currentTimeMillis();

long gabOfTime = (currentTime - lastTime);

if (gabOfTime > 100) {

lastTime = currentTime;

x = event.values[SensorManager.DATA_X];

y = event.values[SensorManager.DATA_Y];

z = event.values[SensorManager.DATA_Z];

speed = Math.abs(x + y + z - lastX - lastY - lastZ) /

gabOfTime * 10000;

if (speed > SHAKE_THRESHOLD) {

count++;
str = String.format("%d", count);
vi.setText(str);

}

lastX = event.values[DATA_X];

lastY = event.values[DATA_Y];

lastZ = event.values[DATA_Z];

}
}
    }  
}













<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#FFFFFF"
    >
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <EditText
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
      android:id="@+id/tv"
      />
     
      <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/count"/>
     
     <TextView
     android:id="@+id/vi"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"/>
</LinearLayout>



에러는 뜨지 않는데 실행이 되질 않아요 ㅠㅠ
그냥 어플이 종료되 버리네요 ㅠㅠ
뭐가 잘못 된건지 좀 알려주세요 ㅠㅠ