2016-04-28 57 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