如何知道我的 phone 上是否有加速度计?

How to know whether I have a accelerometer on my phone?

我正在 phone 上构建一个 Android 应用程序,它使用加速度计来检测震动。然而,当我摇动 phone 时,onSensorChanged 从未被调用。这意味着它无法检测到任何震动!我怀疑我的 phone!

上什至没有加速度计

我的 phone 是索尼 Xperia C5303 运行 Android 4.3。我如何知道我的设备上是否有加速度计?

要识别设备上的传感器,您必须创建 SensorManager class 的实例并传递 SENSOR_SERVICE 参数。例如:

private SensorManager mSensorManager;
...
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

然后,例如,您可以通过使用 TYPE_ALL 调用 getSensorList() 方法来获取设备上每个传感器的列表。例如:

List<Sensor> deviceSensors = mSensorManager.getSensorList(Sensor.TYPE_ALL);

如果要列出加速度计,则需要使用 TYPE_ACCELEROMETER 而不是 TYPE_ALL。

更多信息here