android detect是陀螺仪可用的

JR *_*Tan 7 android gyroscope

如何检测Android设备是否有陀螺仪?目前我正在使用以下方法来检测陀螺仪是否可用.如果陀螺仪不可用,则使用加速度计.

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);
Run Code Online (Sandbox Code Playgroud)

然而,我的一些应用程序用户抱怨他们不能使用陀螺仪.代码有问题吗?

Rag*_*ood 19

您只需使用Package Manager的系统功能检查设备中是否有陀螺仪:

PackageManager packageManager = getPackageManager();
boolean gyroExists = packageManager.hasSystemFeature(PackageManager.FEATURE_SENSOR_GYROSCOPE);
Run Code Online (Sandbox Code Playgroud)

您当前的代码可能无法在某些设备上运行,因为传感器名称不能保证包含Gyroscope在其中.


Raj*_*h S 7

用这个:

mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
if(mSensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE) != null)
{

         // Sensor FOUND
}
else
{
        //Sensor NOT FOUND
}
Run Code Online (Sandbox Code Playgroud)