public class MyService extends Service implements SensorEventListener{
private static final String TAG = "MyService";
private long lastTime;
private float speed;
private float lastX;
private float lastY;
private float lastZ;
private float x, y, z;
int count=0;
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;
public MyService() {
}
public void onAccuracyChanged(Sensor sensor, int accuracy){}
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++;
}
lastX = event.values[DATA_X];
lastY = event.values[DATA_Y];
lastZ = event.values[DATA_Z];
}
}
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d(TAG,"OnStartCommand() 호출");
if (accelerormeterSensor != null)
sensorManager.registerListener(this, accelerormeterSensor,
SensorManager.SENSOR_DELAY_GAME);
Toast.makeText(getApplicationContext(),count,Toast.LENGTH_LONG).show();
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onCreate() {
super.onCreate();
Log.d(TAG,"OnCreate() 호출");
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
accelerormeterSensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
만보기 소스로 공부 중인데요..
백그라운드에서 돌아가게 하기 위해서
엑티비티에 있던 오픈소스를 서비스로 조금 바꿔서 써봤는데요
안되네요..ㅠㅠ
초보라 그런지 잘 모르겠습니다..
뭐가 문제인지 봐주시면 감사하겠습니다...
그리고 서비스클래스에 있는 count 변수를 엑티비티에 넘겨주는 방법은 뭐가 있나요?