如何确定Android设备是否有加速度计?

时间:2013-07-17 10:21:56

标签: android accelerometer

我想检查Android设备是否有加速度计,这样我就可以发出一条祝酒消息,说如果没有加速度计,游戏将无法在当前设备上正常运行。我正在寻找这样的东西:

if(DEVICE_HAS_ACCELEROMETER == false){
Toast.makeText(context,"No Accelerometer Found.",Toast.LENGTH_LONG).show();
}

如果您可以填写DEVICE_HAS_ACCELEROMETER部分,那就可以完成这项工作。

PS:我没参加活动。

7 个答案:

答案 0 :(得分:9)

SensorManager sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
Sensor accelerometerSensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
if (accelerometerSensor != null)
{
    // Device has Accelerometer
}

答案 1 :(得分:2)

boolean accelerometer;

accelerometer = sensorMgr.registerListener(this,sensorMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

if(accelerometer) 
{
.
.
}

答案 2 :(得分:2)

执行以下操作,

SensorManager sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
List<Sensor> s=sensorManager.getSensorList(Sensor.TYPE_ALL);
 for (int i=0;i<s.size();i++)
   {
        Sensor tmp = s.get(i);
        if (tmp.getType() == Sensor.TYPE_ACCELEROMETER)
        DEVICE_HAS_ACCELEROMETER=true;
         else
        DEVICE_HAS_ACCELEROMETER=false;

 }

答案 3 :(得分:0)

这将有效:

 SensorManager Sensors = (SensorManager)getSystemService(SENSOR_SERVICE);
 Sensor mAccelerometer = Sensors.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

mAccelerometer将具有加速度值。

From here.

答案 4 :(得分:0)

accelerometer = sensorMgr.registerListener(this,sensorMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

if(accelerometer) 
{

}

答案 5 :(得分:0)

SensorManager sManager;
acce = sManager.registerListener(this,sManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

if(acce) 
{

}

答案 6 :(得分:0)

您也可以通过PackageManger在一行中查看。

boolean isAccSupported = getPackageManager().hasSystemFeature(PackageManager.FEATURE_SENSOR_ACCELEROMETER);