Sto provando a codificare un'applicazione di lightmeter molto semplice da utilizzare con le mie vecchie fotocamere 35mm utilizzando il mio Galaxy S2 come sensore.Codice del sensore di luce che restituisce un intervallo di valori limitato
Prima di tutto desidero sottolineare che è disponibile una modalità di prova nascosta su questo telefono immettendo asterisco stella a stella zero, sul tastierino numerico quindi selezionando "sensore". Questo rende disponibile il sensore di luce che mostra una gamma di valori Lux variabili tra 5 e oltre 2000 in incrementi di 5, in quanto varia il livello di luce.
La semplice dimostrazione del codice concettuale che ho scritto mi mostrerà solo tre valori, ovvero 10, 100 e 1000 sulla stessa gamma di condizioni di illuminazione. Il mio codice è:
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]);
}
}
}
Qualcuno può suggerire perché questo potrebbe essere?
Ho visto la domanda Light sensor on Nexus One returns only two distinct values che non ha aiutato affatto. Non riesco a capire come la modalità di test integrata possa vedere l'intera gamma e il mio codice non possa.
Aren 't 50 rep un po' meno per una domanda così complicata? : p – poitroae
@ Michael: hai sprecato il tuo tempo allora vero? Se pensi che questo tipo di atteggiamento ti renderà popolare su Stack Overflow, ti sbagli di grosso. – NickT