Android Wear检测手表脸部/应用中的手腕倾斜

时间:2016-11-27 22:47:52

标签: android wear-os android-wear-2.0

当表盘处于活动状态时,有没有办法检测“腕部倾斜到唤醒屏幕”动作?我希望我的表盘检测到这个动作,以便通过再次倾斜手表来延迟屏幕超时(例如)。

1 个答案:

答案 0 :(得分:1)

大多数Android驱动的设备都内置了传感器,可以测量运动,方向和各种环境条件。这些传感器能够提供高精度和高精度的原始数据。您可以使用运动传感器来检测诸如倾斜,摇晃,旋转或摆动。

有三种支持广泛类别的传感器:

  • 运动传感器
  • 环境传感器
  • 位置传感器

以下是感应重力和加速度计的示例代码:

private SensorManager mSensorManager;
private Sensor mSensor;

...

mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mSensor = null;

if (mSensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY) != null){
  List<Sensor> gravSensors = mSensorManager.getSensorList(Sensor.TYPE_GRAVITY);
  for(int i=0; i<gravSensors.size(); i++) {
    if ((gravSensors.get(i).getVendor().contains("Google Inc.")) &&
       (gravSensors.get(i).getVersion() == 3)){
      // Use the version 3 gravity sensor.
      mSensor = gravSensors.get(i);
    }
  }
}
if (mSensor == null){
  // Use the accelerometer.
  if (mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER) != null){
    mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
  }
  else{
    // Sorry, there are no accelerometers on your device.
    // You can't play this game.
  }
}

有关sensormanager的更多信息,请查看:https://developer.android.com/guide/topics/sensors/sensors_overview.html