Du möchtest eine App für Android zum Messen der Lichthelligkeit mit Java programmieren? Dann bist du hier genau richtig!
Erstelle dafür als erstes ein neues Projekt in Android Studio, so wie ich es dir hier erklärt habe.
Gehe nun in die activity_main.xml Datei. Bearbeite das hier vorhandene Element „TextView“. Füge eine ID hinzu und ändere ggf. den Text. Die Datei sollte nun wie folgt aussehen:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/currentLightInLuxTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Helligkeit"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
Code-Sprache: HTML, XML (xml)
Jetzt wagen wir uns an den Java-Code. Öffne dafür die MainActivity.java Datei. Hier solltest du folgenden Code einfügen:
import android.app.Service;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements SensorEventListener {
TextView currentLightInLuxTextView;
SensorManager sensorManager;
Sensor sensor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
currentLightInLuxTextView = (TextView) findViewById(R.id.currentLightInLuxTextView);
sensorManager = (SensorManager) getSystemService(Service.SENSOR_SERVICE);
sensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
}
@Override
protected void onPause() {
super.onPause();
sensorManager.unregisterListener(this);
}
@Override
protected void onResume() {
super.onResume();
sensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_NORMAL);
}
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_LIGHT){
currentLightInLuxTextView.setText("" + event.values[0]);
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
}
Code-Sprache: JavaScript (javascript)
Jetzt kannst du die App testen und sie sollte die Helligkeit vom Lichtsensor anzeigen, so wie es in dem Bild unten zu sehen ist.
Wenn du noch Fragen oder Optimierungen zum Code hast, kannst du sie gerne in einem Kommentar schreiben. Mich würde sehr interessieren, wie du diese Funktion in eine App integrierst!