나는 갤럭시 S2를 센서로 사용하여 기존의 35mm 카메라와 함께 사용하기위한 매우 기본적인 라이트 미터 어플리케이션을 코딩하려고합니다.제한된 범위의 값을 반환하는 라이트 센서 코드
먼저이 전화기에 스타 해시 0 별 해시을 입력하고 dialller 키패드에서 '센서'를 선택하여 숨김/테스트 모드를 사용할 수 있음을 지적해야합니다. 이것은 빛의 레벨을 변화 시킴에 따라 5 단계에서 2000 단계까지 5 단계로 변화하는 Lux 값의 범위를 보여주는 광 센서를 제공합니다.
필자가 작성한 매우 간단한 개념 증명 코드는 같은 조명 범위에서 10, 100 및 1000이라는 세 가지 값만 표시합니다. 내 코드는 다음과 같습니다.
public class LightMeterActivity extends Activity implements SensorEventListener {
private SensorManager mSensorManager;
private Sensor mLightSensor;
private float mLux = 0.0f;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
mLightSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
}
@Override
protected void onResume() {
super.onResume();
mSensorManager.registerListener(this, mLightSensor,
SensorManager.SENSOR_DELAY_FASTEST);
}
@Override
protected void onPause() {
mSensorManager.unregisterListener(this);
super.onPause();
}
@Override
public void onAccuracyChanged(Sensor arg0, int arg1) {}
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_LIGHT) {
mLux = event.values[0];
String luxStr = String.valueOf(mLux);
TextView tv = (TextView) findViewById(R.id.textView1);
tv.setText(luxStr);
Log.d("LUXTAG", "Lux value: " + event.values[0]);
}
}
}
아무도 왜 이런 생각 일 수 있습니까?
저는 전혀 도움이되지 않은 질문이 Light sensor on Nexus One returns only two distinct values 인 것을 보았습니다. 빌드 된 테스트 모드에서 전체 범위를 볼 수있는 방법과 코드를 이해할 수 없다.
때로 믿을 수를 그처럼 복잡한 질문에 대해서는 50 명의 담당자가 조금 덜합니까? : p – poitroae
@ 마이클 : 너 너 낭비 했니? 그런 태도가 스택 오버 플로우에서 인기가 있다고 생각한다면, 당신은 틀린 말입니다. – NickT