Android Studio Java: Lichthelligkeit messen

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!

Hinweis: Mit Sternchen (*) markierte Links auf dieser Seite sind Werbelinks. Beim Kauf darüber erhalte ich eine kleine Provision, der Preis bleibt für dich aber gleich. Damit unterstützt du mich, sodass ich weiterhin kostenlosen Inhalt auf diesem Blog anbieten kann ;-).

Hast du Fragen, Anregungen oder einen einfachen Kommentar dazu? Dann poste es hier!

Bitte bedenke, dass alle Kommentare manuell freigeschaltet werden müssen. Das kann teilweise ein bisschen dauern, du kannst dich aber mit der unten aufgeführten Funktion benachrichtigen lassen, wenn er beantwortet wurde. Das heißt auch, dass Beleidigungen, Spam oder pure Werbung keine Chance haben, auf die Website zu kommen. Deine Email-Adresse wird selbstverständlich nicht veröffentlicht. Erforderliche Felder sind mit * oder (erforderlich) markiert.