我发现:
BrightnessOverride bo = BrightnessOverride.GetDefaultForSystem();
bo.BrightnessLevel();可能与亮度读数有关。但是当我运行这个代码时,它得到了一个例外:“访问被拒绝”。API文档说它需要一个systemManagement功能。我尝试创建一个Package.appxmanifest文件并在其中编写下面的代码。但visual警告说,不允许为其设置systemManagement参数。
有人知道为什么吗?还是其他的建议来获取显示亮度?谢谢。
<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/2010/manifest">
<Identity Name=""
Version=""
Publisher="" />
<Properties>
<DisplayName></DisplayName>
<PublisherDisplayName></PublisherDisplayName>
<Logo></Logo>
</Properties>
<Prerequisites>
<OSMinVersion></OSMinVersion>
<OSMaxVersionTested></OSMaxVersionTested>
</Prerequisites>
<Resources>
<Resource Language="" />
</Resources>
<Capabilities>
<Capability Name="systemManagement"/>
</Capabilities>
<Applications>
<Application Id="" StartPage="">
<VisualElements DisplayName="" Description=""
Logo="" SmallLogo=""
ForegroundText="" BackgroundColor="">
<SplashScreen Image="" />
</VisualElements>
</Application>
</Applications>
</Package>发布于 2017-09-30 02:22:59
它是用户,而不是应用程序,可以调整的亮度显示。自动调节亮度是系统的一项任务.哦,虽然不是一个强有力的理由,但请记住,UWP可以在没有显示器的设备上运行。
因此,UWP不提供此功能(获取显示的当前亮度读数)。
至于为什么systemManagement需要BrightnessOverride功能,我不太明白。毕竟,这种覆盖是针对每个应用程序的,意味着只有应用程序本身才会受到影响。
编辑:
正如雷蒙德在他的评论中指出的那样,这个API可以控制每个应用程序的亮度以及系统亮度。
设置显示亮度是基本的系统管理,因此需要对其进行声明。
https://stackoverflow.com/questions/46482166
复制相似问题