Il SensorManager è accessibile mediante una classe “manager”.
Per ottenere un elenco di sensori supportati dal tuo dispositivo si può utilizzare il metodo getSensorList:
sensors=mSensorManager.getSensorList(Sensor.TYPE_ALL); oppure verificare se un sensore è disponibile: mGyroscope=mSensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE);
mAccelerometer=mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
Ecco il codice per ottenere l’elenco dei sensori:
package com.example.test.activities;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.R;
import android.view.MenuItem;
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_list_item);
TextView tv;
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());
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.message) {
return true;
}
return super.onOptionsItemSelected(item);
}
}