2016-04-28 58 views
0

我可以檢查是否啓用了老化保護屬性,但有什麼方法可以判斷老化模式當前是否處於活動狀態?特別是當屏幕移動時。當老化保護啓動時檢測?

基本上類似 「onAmbientModeChanged」 燒傷英寸

謝謝!

回答

2

活動,延長WearableActivity並覆蓋onEnterAmbientMode,你在參數有一個包,你可以檢索的屬性通緝。 (檢查此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); 
} 

CanvasWatchFaceService.Engine,重寫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); 
    } 

覆蓋onAmbientModeChanged(boolean inAMbientMode),它被稱爲每當從互動的錶盤開關至環境模式,反之亦然:

@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

這是一個錶盤,所以它會在第e CanvasWatchFaceService.Engine。我剛剛嘗試過,但不幸的是它不起作用。我相信只有檢查才能看到財產本身是否發生了變化;當老化模式實際激活時,它似乎不會啓動。 – nope4561759

+0

它通常在表面啓動時調用,它表示系統屬性。保護燒傷不是一種模式,它是手錶屏幕的一個屬性,會對環境模式顯示造成限制。你的意思是什麼不起作用? – Kapouter

+0

調試時,我在'boolean burnIn = properties.getBoolean(PROPERTY_BURN_IN_PROTECTION,false);'上放置了一個斷點,然後在表面移位時觀察它。中斷點沒有被觸發。這就是我在這裏尋找的東西 - 當表面變化時積極告訴我。 – nope4561759