AW2.0如何检测android手表是否佩戴

How to detect android watch is worn or not on AW2.0

Androidwear 2.0屏幕一摘就自动锁 心率应用程序/表盘在不佩戴时将无法使用。

我想知道有没有什么方法可以在不启动服务的情况下获取当前的 wear wear 状态 wear activity?

我试过获取心率传感器的准确度,但我认为这不是一个好方法,因为我不能总是通过这种方式立即得到正确的结果。

有没有系统或者gmsAPI可以同步获取当前佩戴状态?

在带有离体传感器(不戴时会立即锁定)的手表上,您可以检查是否存在唤醒传感器 TYPE_LOW_LATENCY_OFF_BODY_DETECT。这只是 O+ 中的 public API,但您可以使用 N MR1 及以下的实际值。

SensorManager sensorManager = 
    (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
boolean hasSensor = sensorManger.getDefaultSensor(34, true /* wakeup */) != null;

在没有离体传感器(不会立即锁定)的手表上,你最好的选择可能是某种 activity 识别,尽管似乎没有任何 public 可以被 Google API 检测到的离体活动(参见 here)。