在我的Glass GDK浸入式应用程序中打开活动时,如何使屏幕变亮?

我有一个GDK沉浸式应用程序,其中启动程序Activity获取SCREEN_DIM_WAKE_LOCK WakeLock 。 该应用程序还有一个服务,将接收聊天消息,并启动一个ActivityIntent ,以显示每一个。 每当消息Activity打开,我想要使屏幕变亮。 但是,我发现的所有方法似乎都不起作用。

例如,将以下内容添加到onResume中不起作用:

  Settings.System.putInt(getContentResolver(), SCREEN_BRIGHTNESS_MODE, SCREEN_BRIGHTNESS_MODE_MANUAL); WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.screenBrightness = 1.0f; getWindow().setAttributes(lp); 

为了更好地说明问题,下面是我的应用程序中的事件序列:

  1. 活动A启动并获取SCREEN_DIM_WAKE_LOCK。 活动A在很短的时间后变暗。
  2. 服务B通过networking接收聊天消息,并创build一个活动意图C.
  3. 活动C打开,如上所示设置屏幕亮度,但保持灰色

我怎样才能让屏幕变亮?

Solutions Collecting From Web of "在我的Glass GDK浸入式应用程序中打开活动时,如何使屏幕变亮?"

我可以通过在onResume获取具有ACQUIRE_CAUSES_WAKEUP标志的SCREEN_BRIGHT_WAKE_LOCK来find解决scheme。 例如:

 PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "My Tag"); wl.acquire(); //..screen will stay on during this section.. wl.release(); 

尝试在onCreate中调用setContentView之前放置代码(否则亮度级别不会更新),如下所示:

 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Settings.System.putInt(getContentResolver(), SCREEN_BRIGHTNESS_MODE, SCREEN_BRIGHTNESS_MODE_MANUAL); WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.screenBrightness = 1.0f; getWindow().setAttributes(lp); // example setContentView(R.layout.main);