有没有一种方法可以让android wear的手表上的指示灯清晰可见?

有没有一种方法可以让android wear的手表上的指示灯清晰可见?,android,wear-os,watch-face-api,Android,Wear Os,Watch Face Api,我为android wear创建了一个新的手表面 如果屏幕上显示指示灯(断开连接、电池负载),我想更改手表表面某些元素(文本视图)的可见性 有没有办法识别这些指标何时可见 我在这里设置了watchFaceStyle: setWatchFaceStyle(new WatchFaceStyle.Builder(DigitalWatchFaceService.this) .setAcceptsTapEvents(false)

我为android wear创建了一个新的手表面

如果屏幕上显示指示灯(断开连接、电池负载),我想更改手表表面某些元素(文本视图)的可见性

有没有办法识别这些指标何时可见

我在这里设置了watchFaceStyle:

setWatchFaceStyle(new WatchFaceStyle.Builder(DigitalWatchFaceService.this)
                        .setAcceptsTapEvents(false)
                        .setCardPeekMode(WatchFaceStyle.PEEK_MODE_SHORT)
                        .setBackgroundVisibility(WatchFaceStyle.BACKGROUND_VISIBILITY_INTERRUPTIVE)
                        .setHotwordIndicatorGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL)
                        .setPeekOpacityMode(WatchFaceStyle.PEEK_OPACITY_MODE_TRANSLUCENT)
                        .setShowUnreadCountIndicator(false)
                        .setStatusBarGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL)
                        .setShowSystemUiTime(false)
                        .build());
是否有类似的东西:

isStatusBarVisible()

或者在一个聆听者身上有什么方法?
我找不到像这样的东西。

您需要做与这些指示器检测是否应该显示类似的工作。例如,您需要监听电池事件,并由此推断设备是否在充电器上。对于连接,您需要在
onPeerDisconnected
上侦听
onPeerConnected


但总的来说,这似乎不是一个好主意。你永远不能保证没有添加新的内容。相反,您应该使用watch face api将指示器放置在最适合您的手表表面的位置,并在显示内容时完全避免该区域。

我知道这不是一个好主意,但我的解决方案是:

检查连接: (问题:这比指示器快得多)

指标:

if (isCharging || !isConnected) {
    isIndicatorVisible = true;
} else {
    isIndicatorVisible = false;
}
Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).setResultCallback(new ResultCallback<NodeApi.GetConnectedNodesResult>() {
    @Override
    public void onResult(NodeApi.GetConnectedNodesResult getConnectedNodesResult) {
        if (!getConnectedNodesResult.getNodes().isEmpty()) {
            isConnected = true;
        } else {
                isConnected = false;
        }
    }
});
IntentFilter intentFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = getBaseContext().registerReceiver(null, intentFilter);
int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING ||
         status == BatteryManager.BATTERY_STATUS_FULL;
if (isCharging || !isConnected) {
    isIndicatorVisible = true;
} else {
    isIndicatorVisible = false;
}