我一直在尝试将亮度设置在 Android 设置的限制之下。Google Play 中有两个类似的应用程序这样做:
第二个,甚至允许使用黑屏手机,这正是我在我的应用程序中所需要的。
关于亮度还有很多其他问题,但不要将其设置在此系统限制下,我发现一个问题几乎相同但对我没有帮助: 亮度屏幕过滤器
所以经过大量搜索后,我得到了以下代码:
int brightness=0; //0 to 255, so I set it to a low level (not enough for me)
ContentResolver cResolver = getContentResolver();
//set the system brightness value, and if active, disable auto mode.
System.putInt(cResolver, System.SCREEN_BRIGHTNESS, brightness);
System.putInt(cResolver, System.SCREEN_BRIGHTNESS_MODE, System.SCREEN_BRIGHTNESS_MODE_MANUAL);
//previous lines don't set the brightness to the current screen so we set it like this:
LayoutParams layoutpars = getWindow().getAttributes();
layoutpars.screenBrightness = brightness / (float)255;
//Now we have brightness to the minimum allowed by Android but
//to achieve what these apps do, I have to reduce alpha of the window to the min
//then the screen is black like I want, and totally usable!
layoutpars.alpha=0.05f;
window.setAttributes(layoutpars);
这里 alpha 是关键,这是我想要做的,但仅适用于当前窗口/屏幕,我需要将此 alpha 作为默认值保存到系统中,就像我正在使用亮度和手动模式一样在任何地方应用.
你知道我应该怎么做吗?我找不到值“System.SCREEN_ALPHA”来使用 System.putInt 或其他方式设置它。
在我之前链接的另一个问题中,pheelick 回复了使用透明不可触摸屏幕的建议,但这对我不起作用,结果并没有像以前的应用程序那样给人一种关闭屏幕的感觉。
谢谢。