2016-04-28 4 views
0

Ich kann prüfen, ob die Einbrennschutz-Eigenschaft aktiviert ist, aber gibt es eine Möglichkeit festzustellen, wann der Einbrennmodus gerade aktiv ist? Zum Beispiel wenn der Bildschirm wechselt.Erkennen, wenn der Burn-In-Schutz aktiviert ist?

Im Grunde so etwas wie "onAmbientModeChanged" für Burn in.

Dank!

Antwort

2

In einer Aktivität, erweitern WearableActivity und außer Kraft setzen onEnterAmbientMode, haben Sie in Parameter ein Bundle, wo Sie die Eigenschaft wollte abrufen können. (Überprüfung dieses WearableActivity)

@Override 
public void onEnterAmbient(Bundle ambientDetails) { 
    super.onEnterAmbient(ambientDetails); 
    boolean burnIn = ambientDetails.getBoolean(EXTRA_BURN_IN_PROTECTION); 
    boolean lowBit = ambientDetails.getBoolean(EXTRA_LOWBIT_AMBIENT); 
} 

In einem CanvasWatchFaceService.Engine, außer Kraft setzen onPropertiesChanged:

@Override 
    public void onPropertiesChanged(Bundle properties) { 
     super.onPropertiesChanged(properties); 
     boolean lowBit = properties.getBoolean(PROPERTY_LOW_BIT_AMBIENT, false); 
     boolean burnIn = properties.getBoolean(PROPERTY_BURN_IN_PROTECTION, false); 
    } 

Aufschalten onAmbientModeChanged(boolean inAMbientMode), wird aufgerufen, wenn der Schalter vom Ziffer interaktiven Modus und umgekehrt auf Umgebungs:

@Override 
    public void onAmbientModeChanged(boolean inAmbientMode) { 
     super.onAmbientModeChanged(inAmbientMode); 
     if (mState.isAmbient() != inAmbientMode) { 
      mState.setAmbient(inAmbientMode); 
      //make your updates on your drawing parameters if needed 
      invalidate(); 
     } 
    } 
+0

Dies ist für ein Zifferblatt, also wäre es in th e CanvasWatchFaceService.Engine. Ich habe es gerade ausprobiert und es funktioniert leider nicht. Ich glaube, dass überprüft nur, ob die Eigenschaft selbst geändert wird; Es scheint nicht zu brennen, wenn der Einbrennmodus tatsächlich aktiviert wird. – nope4561759

+0

Es wird normalerweise aufgerufen, wenn das Zifferblatt gestartet wird und es die Systemeigenschaften darstellt. Der Einbruchsschutz ist kein Modus, sondern eine Eigenschaft des Bildschirms Ihrer Uhr, die sich auf die Umgebungsmodusanzeige auswirken kann. Was meinst du damit nicht? – Kapouter

+0

Während des Debuggens habe ich einen Breakpoint auf 'boolean burnIn = properties.getBoolean (PROPERTY_BURN_IN_PROTECTION, false);' gesetzt und dann beobachtet, wie sich das Watchface verschoben hat. Der Haltepunkt wurde nicht ausgelöst. Das ist, was ich hier suche - etwas, das mir aktiv sagt, wenn sich das Zifferblatt ändert. – nope4561759

Verwandte Themen