如何检查React Native是否支持Accelerometer?

时间:2018-11-23 09:34:06

标签: react-native expo

如何检查Accelerometer是否支持React Native和EXPO?

我尝试了以下

const accel = Accelerometer.addListener(this.determineShake);

if (!accel) //not supported, do something else

这不起作用。

2 个答案:

答案 0 :(得分:0)

从他们的实现看来,他们似乎在本地检查它是否处于活动状态,然后决定调用回调:

if ([[self manager] isAccelerometerAvailable]) {
  _accelerometerHandlers[scopedSensorModule] = handlerBlock;
}

From Github

因此,您可能希望通过catch实例的Accelerometer子句与Expo分离并使用the suggested solution from @Nino9612

new Accelerometer()
  .then(observable => ...)
  .catch(error => console.warn('The sensor is not available'));

https://github.com/react-native-sensors/react-native-sensors#sensor-api

答案 1 :(得分:0)

Accelerometer.isAvailableAsync()

此API返回一个Promise,该Promise解析为一个表示传感器可用性的布尔值。在doc.expo.ios/accelerometer

中查看详细信息