4

我一直在尝试使用 UiModeManager 的夜间模式功能关闭应用程序中按钮的背光。默认的桌面时钟应用程序(Nexus One)在变暗时会关闭背光,我也想这样做。

我尝试使用以下代码:

UiModeManager 经理 = (UiModeManager) getSystemService(UI_MODE_SERVICE); mgr.setNightMode(UiModeManager.MODE_NIGHT_YES);

UiModeManager.setNightMode(int mode) 文档说:

设置夜间模式。只有在设备上启用了车载或桌面模式时,对夜间模式的更改才有效。

这是否意味着设备必须物理上位于桌面扩展坞中?我可以使用 UiModeManager.enableCarMode(int flags) 方法将设备设置为汽车模式。这工作正常,但它不会关闭灯,它只会使屏幕的背光变暗。

有没有办法在不使用物理桌面扩展坞的情况下将设备设置为桌面模式?由于 FroYo 源代码尚未发布,我无法查看内置的 Desk Clock 应用程序。

4

1 回答 1

4

在刚刚发布 Froyo 源代码时回答我自己的问题:

我认为您不必使用 UIModeManager 类。这就是 DeskClock 应用程序的工作方式:

Window win = getWindow();
WindowManager.LayoutParams winParams = win.getAttributes();

//Look at this!
winParams.buttonBrightness = WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_OFF;

win.setAttributes(winParams);

..它也适用于我。

于 2010-06-23T21:06:24.607 回答