How to determine if an android device has a gyroscope? I am currently using the following method to determine if a gyro is available. If a gyroscope is not available, use an accelerometer.
SensorManager mgr = (SensorManager) getSystemService(SENSOR_SERVICE); List<Sensor> sensors = mgr.getSensorList(Sensor.TYPE_ALL); for (Sensor sensor : sensors) { Log.i("sensors",sensor.getName()); if(sensor.getName().contains("Gyroscope")){ try{ mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR), SensorManager.SENSOR_DELAY_FASTEST); return; }catch(Exception e){ } } } mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_FASTEST);
However, some complaints from application users cannot use the gyroscope. Are there any problems with the code?
source share