App Tutorial

SensorManager Android: Guida Completa con Esempi Java

Scopri come usare il SensorManager Android in Android Studio: guida passo passo con codice Java per ottenere l’elenco dei sensori disponibili sul dispositivo, accedere ad accelerometro, giroscopio e altri sensori hardware nelle tue app Android.

Cos’è il SensorManager Android?

Il SensorManager è accessibile mediante una classe “manager” e permette di interagire con i sensori hardware del dispositivo Android. Per ottenere un elenco di tutti i sensori supportati si utilizza il metodo getSensorList(), mentre per verificare se un sensore specifico è disponibile si usa getDefaultSensor().

Tipi di sensori più comuni

// Tutti i sensori disponibili
sensors = mSensorManager.getSensorList(Sensor.TYPE_ALL);

// Sensori specifici
mGyroscope = mSensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE);
mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

Esempio – Listare tutti i sensori del dispositivo

Ecco il codice completo per ottenere e visualizzare l’elenco di tutti i sensori disponibili sul dispositivo:

package com.example.test.activities;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import java.util.List;
import android.hardware.Sensor;
import android.hardware.SensorManager;

public class MainActivity extends AppCompatActivity {

    private SensorManager mSensorManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TextView tv = findViewById(R.id.text1);
        tv.setVisibility(View.GONE);

        mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
        List<Sensor> list = mSensorManager.getSensorList(Sensor.TYPE_ALL);

        for (int i = 1; i < list.size(); i++) {
            tv.setVisibility(View.VISIBLE);
            tv.append("\n" + list.get(i).getName()
                    + "\n" + list.get(i).getVendor()
                    + "\n" + list.get(i).getVersion());
        }
    }
}

Metodi principali del SensorManager

MetodoDescrizione
getSensorList(Sensor.TYPE_ALL)Restituisce la lista di tutti i sensori
getDefaultSensor(int type)Restituisce il sensore del tipo specificato
registerListener()Registra un listener per ricevere i dati del sensore
unregisterListener()Deregistra il listener per risparmiare batteria
getName()Restituisce il nome del sensore
getVendor()Restituisce il produttore del sensore

Conclusione

In questa guida abbiamo visto come usare il SensorManager Android in Android Studio per accedere ai sensori hardware del dispositivo. Ricorda sempre di deregistrare il listener quando non è più necessario per risparmiare batteria.