你好。在DP6中,Google添加了新的API来修改屏幕 - ScreenManager。我尝试使用它来改变i.MX7Dual的亮度,这是来自官方Google工具包Pico Pro的电路板,但没有成功。
我用按钮创建了简单的Activity,一个用于低亮度,一个用于高亮度:
Button lowButton = findViewById(R.id.button_low);
lowButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DisplayManager displayManager = (DisplayManager) getApplicationContext().getSystemService(Context.DISPLAY_SERVICE);
Display[] displays = displayManager.getDisplays();
if (displays.length > 0) {
int id = displays[0].getDisplayId();
ScreenManager screenManager = new ScreenManager(id);
screenManager.setBrightnessMode(ScreenManager.BRIGHTNESS_MODE_MANUAL);
screenManager.setBrightness(10);
}
}
});
获得许可:
<uses-permission android:name="com.google.android.things.permission.MODIFY_SCREEN_SETTINGS" />
它没有工作,屏幕始终亮相同的光,我想最大。 此外,我尝试运行虚拟活动刷新屏幕,但现在改进。
我也试过通过Setting.System改变亮度:
try {
Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE,Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, 10);
int br = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS);
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.screenBrightness = (float) br / 10;
getWindow().setAttributes(lp);
} catch (Exception e) {}
有权限:
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
但它也不起作用。
有什么建议检查或尝试?我想这个屏幕不支持更改屏幕亮度,因为在新的物联网启动器中我没有看到屏幕设置。