Próbuję zakodować bardzo podstawową aplikację światłomierza do użytku z moimi starymi aparatami 35 mm, używając mojego Galaxy S2 jako czujnika.Kod czujnika światła powracającego ograniczony zakres wartości
Należy przede wszystkim zaznaczyć, że na tym telefonie dostępny jest ukryty/testowy tryb wybierania, wpisując gwiaździstą mieszankę zero gwiazdki hash, na klawiaturze dialllera, a następnie wybierając "czujnik". Zapewnia to dostęp do czujnika światła, który pokazuje zakres wartości Lux wahających się od 5 do ponad 2000 w krokach co 5, ponieważ zmieniam poziom oświetlenia.
Bardzo prosty kod koncepcyjny, który napisałem, pokaże mi tylko trzy wartości, mianowicie 10, 100 i 1000 w tym samym zakresie warunków oświetlenia. Mój kod to:
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]);
}
}
}
Czy ktoś może zasugerować, dlaczego tak się dzieje?
Widziałem pytanie Light sensor on Nexus One returns only two distinct values , które nie pomogło w ogóle. Nie mogę zrozumieć, jak wbudowany tryb testowy może zobaczyć pełny zakres, a mój kod nie.
Aren 50 troszkę mniej za tak skomplikowane pytanie? : p – poitroae
@Michael: Zmarnowałeś swój czas, prawda? Jeśli uważasz, że taka postawa sprawi, że będziesz popularny w Stack Overflow, jesteś bardzo w błędzie. – NickT