我有一个 GDK 沉浸式应用程序,其中启动器 Activity
获取一个SCREEN_DIM_WAKE_LOCK WakeLock
。该应用程序还有一项服务,该服务将接收聊天消息并为 Activity
启动 Intent
以显示每条消息。每当打开消息 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);
为了更好地说明问题,以下是我的应用中的事件顺序:
- Activity A 启动并获取 SCREEN_DIM_WAKE_LOCK。 Activity A 会在短时间后变暗。
- 服务 B 通过网络接收聊天消息并为 Activity C 创建 Intent
- Activity C 打开,如上所示设置屏幕亮度,但保持暗淡
如何让屏幕变亮?
最佳答案
我能够通过在 onResume
中使用 ACQUIRE_CAUSES_WAKEUP
标志获取 SCREEN_BRIGHT_WAKE_LOCK
找到解决方案。例如:
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();
关于android - 在我的 Glass GDK 沉浸式应用程序中打开 Activity 时如何使屏幕变亮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21485133/