【问题标题】:How to detect android watch is worn or not on AW2.0如何在 AW2.0 上检测安卓手表是否佩戴
【发布时间】:2017-06-22 05:33:18
【问题描述】:

Android Wear 2.0 屏幕摘下即可自动锁定 并且心率应用程序/表盘在未佩戴时将无法使用。

我想知道有没有办法在不启动服务来监听磨损活动的情况下获得当前的磨损状态?

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

是否有任何系统或 gms API 可以同步获取当前佩戴状态?

【问题讨论】:

    标签: wear-os


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢,但是离体传感器检查在 AW 2.0 的 huawei watch2 上不起作用,返回值显示传感器(34)始终处于活动状态,无论手表是否佩戴。
    • 但手表确实有自动锁定功能
    • 你有这方面的代码吗?如果您注册传感器事件,它应该在打开和关闭身体时返回不同的值
    • 搞错了,拿到sensor后,注册一个sensor listener,马上就收到了正确的on-body状态,非常感谢。
    • 这个是一次性传感器,不知道为什么requestTriggerSensor接口返回false,但是registerListener有效
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-06
    • 1970-01-01
    • 1970-01-01
    • 2011-04-09
    • 1970-01-01
    相关资源
    最近更新 更多