7

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

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

如果您可以填写 DEVICE_HAS_ACCELEROMETER 部分,那就可以了。

PS:我没有参加活动。

4

7 回答 7

13
SensorManager sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
Sensor accelerometerSensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
if (accelerometerSensor != null)
{
    // Device has Accelerometer
}
于 2013-07-18T03:44:36.060 回答
3

执行以下操作,

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;

 }
于 2013-07-17T11:35:45.090 回答
3
boolean accelerometer;

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

if(accelerometer) 
{
.
.
}
于 2013-07-17T10:23:31.870 回答
1

这将起作用:

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

mAccelerometer 将具有加速度计 val。

从这里。

于 2013-07-17T10:25:39.570 回答
0
SensorManager sManager;
acce = sManager.registerListener(this,sManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

if(acce) 
{

}
于 2013-07-17T10:45:30.913 回答
0
accelerometer = sensorMgr.registerListener(this,sensorMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

if(accelerometer) 
{

}
于 2013-07-17T10:27:25.797 回答
0

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

boolean isAccSupported = getPackageManager().hasSystemFeature(PackageManager.FEATURE_SENSOR_ACCELEROMETER);
于 2017-03-17T12:16:14.583 回答