마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 센서 딜레이 질문

0 추천
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_orientation);

		mStart = (Button) findViewById(R.id.start);
		mStop = (Button) findViewById(R.id.stop);

		// 1. 센서 매니저 생성
		mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);

		// 2. 센서 객체 생성
		mOriSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);

		mOriX = (TextView) findViewById(R.id.oriX);
		mOriY = (TextView) findViewById(R.id.oriY);
		mOriZ = (TextView) findViewById(R.id.oriZ);

		mOriX.setText(String.format("X축 : "));
		mOriY.setText(String.format("Y축 : "));
		mOriZ.setText(String.format("Z축 : "));

		// --------------------------------------------------------------------
		mStart.setOnClickListener(this);

		mStop.setOnClickListener(this);
		// --------------------------------------------------------------------

		
	}

	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		switch (v.getId()) {
		case R.id.start:
			mStart.setVisibility(View.GONE);
			mStop.setVisibility(View.VISIBLE);
	         
			mOriListener = new SensorEventListener(){

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

				@Override
				public void onSensorChanged(SensorEvent event) {
					float[] val = event.values;
					float oriX = val[0];
					float oriY = val[1];
					float oriZ = val[2];
					
					mOriX.setText(String.format("X축 : %.3f", oriX));
					mOriY.setText(String.format("Y축 : %.3f", oriY));
					mOriZ.setText(String.format("Z축 : %.3f", oriZ));
					
				}
				
			};
			
   			mSensorManager.registerListener(mOriListener, mOriSensor, SensorManager.SENSOR_DELAY_UI);

			

			break;
		case R.id.stop:
			mStop.setVisibility(View.GONE);
			mStart.setVisibility(View.VISIBLE);
			
			mSensorManager.unregisterListener(mOriListener);
			break;
		}
	}

이런 식으로 간단한 센서 측정 예제를 만들어봤는데요.

센서 자체가 측정 속도가 빠른편이라 1초에 한번씩 측정이 가능하게 변경하고싶어요.

여기서 어떤 함수를 추가하거나 어떻게 변경시켜야 측정시간을 초당 한번으로 길게 측정 가능할까요? 

리에 (120 포인트) 님이 2014년 4월 24일 질문

1개의 답변

+1 추천
쓰레드를 사용하여 센서 값을 1초마다 가져오게 하여도 되고... 함수가 있었는데 그걸 까먹었네요 ㅠㅠ

http://www.masterqna.com/android/23864/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%84%BC%EC%84%9C-%EB%B0%98%EC%9D%91%EC%86%8D%EB%8F%84

이 글을 참고 해보세요. 비슷한 상황인거 같네요.
인연 (31,880 포인트) 님이 2014년 4월 24일 답변
...