안드로이드 개발 질문/답변
(글 수 45,052)
조도센서 관련 테스트를 하고 있습니다.
갤럭시 S, 모토로이 폰으로 테스트를 해봤는데요 두 폰 모두 SENSOR_LIGHT로 조도를 가져 오지 못하고 있습니다.
SensorManager sm = (SensorManager) getSystemService(SENSOR_SERVICE);
int sensors = sm.getSensors();
if ((sensors & sm.SENSOR_ORIENTATION) != 0){
Log.i(TAG, "SENSOR_ORIENTATION");
}
if ((sensors & sm.SENSOR_ACCELEROMETER) != 0){
Log.i(TAG, "SENSOR_ACCELEROMETER");
}
if ((sensors & sm.SENSOR_LIGHT) != 0){
Log.i(TAG, "SENSOR_LIGHT");
}
if ((sensors & sm.SENSOR_MAGNETIC_FIELD) != 0){
Log.i(TAG, "SENSOR_MAGNETIC_FIELD");
}
if ((sensors & sm.SENSOR_TRICORDER) != 0){
Log.i(TAG, "SENSOR_TRICORDER");
}
if ((sensors & sm.SENSOR_PROXIMITY) != 0){
Log.i(TAG, "SENSOR_PROXIMITY");
}
if ((sensors & sm.SENSOR_TEMPERATURE) != 0){
Log.i(TAG, "SENSOR_TEMPERATURE");
}
이 소스로 테스트 해 봤습니다.
Log를 확인해 보면
SENSOR_ORIENTATION
SENSOR_ACCELEROMETER
SENSOR_PROXIMITY
만 로그에 찍힙니다.
혹시 조도값 가져오는 api가 바뀐 부분이 있나요?
갤럭시 S 나 모토로이에서 조도 센서로 작업해 보신 분 계시면 답변 부탁드리겠습니다.
갤럭시 S, 모토로이 폰으로 테스트를 해봤는데요 두 폰 모두 SENSOR_LIGHT로 조도를 가져 오지 못하고 있습니다.
SensorManager sm = (SensorManager) getSystemService(SENSOR_SERVICE);
int sensors = sm.getSensors();
if ((sensors & sm.SENSOR_ORIENTATION) != 0){
Log.i(TAG, "SENSOR_ORIENTATION");
}
if ((sensors & sm.SENSOR_ACCELEROMETER) != 0){
Log.i(TAG, "SENSOR_ACCELEROMETER");
}
if ((sensors & sm.SENSOR_LIGHT) != 0){
Log.i(TAG, "SENSOR_LIGHT");
}
if ((sensors & sm.SENSOR_MAGNETIC_FIELD) != 0){
Log.i(TAG, "SENSOR_MAGNETIC_FIELD");
}
if ((sensors & sm.SENSOR_TRICORDER) != 0){
Log.i(TAG, "SENSOR_TRICORDER");
}
if ((sensors & sm.SENSOR_PROXIMITY) != 0){
Log.i(TAG, "SENSOR_PROXIMITY");
}
if ((sensors & sm.SENSOR_TEMPERATURE) != 0){
Log.i(TAG, "SENSOR_TEMPERATURE");
}
이 소스로 테스트 해 봤습니다.
Log를 확인해 보면
SENSOR_ORIENTATION
SENSOR_ACCELEROMETER
SENSOR_PROXIMITY
만 로그에 찍힙니다.
혹시 조도값 가져오는 api가 바뀐 부분이 있나요?
갤럭시 S 나 모토로이에서 조도 센서로 작업해 보신 분 계시면 답변 부탁드리겠습니다.
2010.07.29 16:33:43
갤S가 없어서 테스트는 못해보지만,,
Sensor 클래스에 getName()이나 getVendor()값을 비교해 보시죠
아무래도 휴대폰 부품의 차이가 있을 수도 있을거 같은데요
Sensor 클래스에 getName()이나 getVendor()값을 비교해 보시죠
아무래도 휴대폰 부품의 차이가 있을 수도 있을거 같은데요
2010.08.02 14:18:20
두 폰 모두 Sensor.TYPE_LIGHT 로 값이 변경 됐을 시 값을 가져 올 수 있습니다.
SensorManager에는 처음 부터 조도 값을 가져 오는 함수가 없네요...
혹시 app을 실행 시켰을 때 조도 값을 가져올 수 있는 방법이 있나요?
2010.08.05 20:16:22
@Override
public void onSensorChanged(SensorEvent event) {// TODO Auto-generated method stub
Log.d("Debug", "Sensor changed."); synchronized(this) { switch(event.sensor.getType()) {case Sensor.TYPE_LIGHT:
Log.d("Debug", "Light: " + event.values[0]);}
}
}
이렇게 값을 가져왔습니다. 근데 저는 조도 값이 잘 변하질 않네요..-_-;;




자답 입니다.
SENSOR_LIGHT 가 아닌 Sensor.TYPE_LIGHT 사용하니까 변경 된 값 가져오네요...
그런데 모토로이 와 갤럭시 S가 반환하는 값 범위가 다르네요...