有没有一种方法可以让android wear的手表上的指示灯清晰可见?
我为android wear创建了一个新的手表面 如果屏幕上显示指示灯(断开连接、电池负载),我想更改手表表面某些元素(文本视图)的可见性 有没有办法识别这些指标何时可见 我在这里设置了watchFaceStyle:有没有一种方法可以让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)
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;
}