是否可以判断手表上是否有卡片?

时间:2014-10-20 23:33:05

标签: wear-os

我正在为Android佩戴创建一个表盘,我想根据卡片是否显示来更改布局。我相信谷歌会在官方的表面API中公开这个,但在那之前有什么方法可以破解它吗?

我已经尝试在手机上创建一个通知监听器,但是如果通知是localOnly或者没有通知我似乎无法访问,所以我不知道手表上会显示什么。

我已经尝试在手表上迭代视图层次结构,但它没有向我展示任何有用的东西。有没有办法通过反射访问窗口中的内容视图?

任何帮助都会受到赞赏,我不得不等待谷歌发布他们的API。

1 个答案:

答案 0 :(得分:0)

是的,这是可能的。 我使用了onPeekCardPositionUpdate方法,该方法将矩形设置为卡的边界。 如果没有显示窥视卡,则矩形的顶部将为0 每当卡的高度发生变化时,都会调用该方法。 以下卡片将写出布尔值yesACardIsShowing中显示的卡片状态。

    @Override
    // Rect -> none
    public void onPeekCardPositionUpdate(Rect bounds) {
        super.onPeekCardPositionUpdate(bounds);
        if (!bounds.equals(mCardBounds)) {
            mCardBounds.set(bounds);
            yesACardIsShowing = bounds.top != 0
        }
    }