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
| Metodo | Descrizione |
|---|---|
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.