android 방향 센서(SENSOR TYPE ORIENTATION)

2036 단어 Android
SENSOR_TYPE_오리엔탈 이거 안드로이드 2.2 이후로 추천 안 해요!!!
휴대폰 상태
수치 상태
수치 범위
휴대전화는 수평으로 놓고, 꼭대기는 정북방을 가리킨다
x, y, z 방향 값은 0입니다.
0
수평 반시계 방향으로 회전
줄다
360 ~ 0
수평 시계 방향으로 회전
x부단히 증대
0 ~ 360
핸드폰 왼쪽을 들었을 때.
z 감소
0 ~ -180
핸드폰 오른쪽을 들어올릴 때.
끊임없이 커지다
0 ~ 180
핸드폰 꼭대기를 들어올릴 때
줄다
0 ~ -180
핸드폰 밑부분을 들어올릴 때.
y가 끊임없이 커지다
0 ~ 180
 
  
실험을 통해 우리는 휴대전화의 꼭대기가 정북방을 가리킬 때 방향치가 0이고 꼭대기가 정동방을 가리킬 때 방향치가 90이며 꼭대기가 정남방을 가리킬 때 방향치가 180이고 꼭대기가 정서방을 가리킬 때 방향치가 270이라는 것을 발견하였다.이러한 데이터에 근거하여 우리는 방향값의 범위에 따라 디스크의 현재 우리의 방위에 따라 나침반의 읽기 수를 확정할 수 있다.
코드 예:
package com.example.sensors;

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.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity implements SensorEventListener{

	private TextView changeText;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		SensorManager sensorManager= (SensorManager) getSystemService(SENSOR_SERVICE) ;
		Sensor gyposcope = sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
		sensorManager.registerListener(this, gyposcope, SensorManager.SENSOR_DELAY_GAME);
		changeText = (TextView) findViewById(R.id.changeText);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@Override
	public void onSensorChanged(SensorEvent event) {
		Log.i("test", event.values.toString());
		changeText.setText(event.values[0]+" "+event.values[1]+" "+event.values[2]);
	}

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



}

좋은 웹페이지 즐겨찾기