gpt4 book ai didi

java - 如何在 android 中像 f.lux 一样操作屏幕色温

转载 作者:搜寻专家 更新时间:2023-11-01 07:48:49 24 4
gpt4 key购买 nike

我正在尝试开发一个应用程序,让用户可以根据每个应用程序控制屏幕的温度。此功能以阅读模式的名称出现在 miui 中。

我试图实现的行为在这里表示:http://en.miui.com/thread-170033-1-1.html

我不知道在 Android 中使用什么来实现相同的目的。 android 中是否有任何可用的 API 或类可以帮助我?

最佳答案

您需要与 SurfaceFlinger 通信并向其发送一个颜色变换矩阵(事务 1015, token “android.ui.ISurfaceComposer”,数据由一个 32 位整数和后接 16 个 float 组成)。查看 SurfaceFlinger.cpp 的 Android 源代码以及system accessibility settings中的颜色反转代码.这使您可以设置任何您喜欢的颜色变换矩阵。至少我在 ColorChanger app 中是这样做的.

然后您可以使用自定义颜色变换矩阵来重新映射色温。

除非您的应用程序有系统签名,否则您将需要使用 root,然后与 SurfaceFlinger 本地通信或启动一些使用大量反射的 java 代码。

此外,这仅适用于 Android 5.0 或更高版本。我的 ColorChanger 有一种非常老套的方式让它在 4.4 上工作,但相信我,你不想去那里(我想去,因为我写它时只有一个 4.4 设备)。

或者,你可以做一些更底层的事情,比如 CF.lumen做。我认为 Chainfire 重写了部分显示驱动程序。如果您没有对/system 的写入权限,我不确定这是否有效。

关于java - 如何在 android 中像 f.lux 一样操作屏幕色温,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38373018/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com