0

アンドロイドウェアの新しいウォッチフェイスを作成します。

インジケーター (接続の切断、バッテリーの負荷) が画面に表示されている場合、ウォッチフェイスの一部の要素 (テキストビュー) の可視性を変更したいと思います。

これらのインジケーターがいつ表示されるかを認識する方法はありますか?

ここで、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()

また

isHotwordIndicatorVisible()

または、リスナーにメソッドがありますか?私はこのようなものを見つけることができません..

4

2 に答える 2

0

これらのインジケーターが表示されるべきかどうかを検出する方法と同様の作業を行う必要があります。たとえば、バッテリー イベントをリッスンし、デバイスが充電されているかどうかを推測する必要があります。onPeerConnected接続するには、 onをリッスンする必要がありますonPeerDisconnected

しかし、一般的に、これは良い考えではないようです。新しいものが追加されないという保証はありません。代わりに、ウォッチ フェイス API を使用して、ウォッチ フェイスに最適な場所にインジケーターを配置し、コンテンツを表示するときにその領域を完全に避ける必要があります。

于 2015-11-03T20:46:13.770 に答える
0

これは良い考えではないことはわかっていますが、私の解決策は次のとおりです。

接続を確認してください: (問題: これはインジケーターよりもはるかに高速です)

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;
}
于 2015-11-19T02:16:40.343 に答える