Android-Lichtsensor - erkennen erhebliche Licht ändert
Ich bin neu sensor verwenden in android und jetzt ein bisschen verwirrt. Ich brauche, um einige Aktionen nur, wenn es eine signifikante Licht ändern, z.B. das Licht eingeschaltet war in einem dunklen Raum. Ich habe eine ziemlich einfache default-Implementierung so weit. Wie kann ich dem system mitteilen, ich will nur zu reagieren, um eine signifikante Licht ändern?
public class MainActivity extends Activity implements SensorEventListener {
private SensorManager mSensorManager;
private Sensor mLight;
private RelativeLayout mLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
mLight = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
mLayout = (RelativeLayout) findViewById(R.id.mLayout);
mLayout.setKeepScreenOn(true);
}
@Override
protected void onResume() {
mSensorManager.registerListener(this, mLight,
SensorManager.SENSOR_DELAY_FASTEST);
super.onResume();
}
@Override
protected void onPause() {
mSensorManager.unregisterListener(this);
super.onPause();
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
if (sensor.getType() == Sensor.TYPE_LIGHT) {
//TODO
}
}
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_LIGHT) {
//TODO
}
}
}
InformationsquelleAutor Droidman | 2013-07-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
versuchen Sie den folgenden code :-
ja, es ist richtig
nun war die Frage wie kann ich erkennen, OB die leichte Veränderung war signifikant.. Ihre Umsetzung reagiert auf jede Veränderung
ja nutzen auf diese Weise public void onAccuracyChanged(Sensor sensor, int accuracy) { msg.insert(0, sensor.getName() + "Genauigkeit geändert:" + Genauigkeit + (Genauigkeit==1?" (LOW)":(Genauigkeit==2?" (MED)":" (HOCH)")) + "\n"); text.setText(msg); text.invalidate();
bitte warten Sie ein bisschen, so kann ich testen Sie Ihre Lösung und daneben als angenommen, falls es funktionieren wird. Ich habe einige java Probleme und kann die IDE starten. Ich werde es testen, sofort nach der Lösung des Problems
InformationsquelleAutor Yogesh Tatwal
Wenn es nur eine leichte änderung können Sie einfach überprüfen, um zu sehen, ob das Licht-sensor-Wert ist 0. Wenn Sie erkennen einige seltsame ändern, wie 27 zu 20 für einen bestimmten Grund, dann denke ich, müssen Sie möglicherweise die Verwendung des maschinellen Lernens.
InformationsquelleAutor John61590