如何以编程方式关闭自动亮度?
Posted
技术标签:
【中文标题】如何以编程方式关闭自动亮度?【英文标题】:How to turn off Auto-Brightness programmatically? 【发布时间】:2013-01-24 19:36:18 【问题描述】:我想知道是否有一种方法可以将 ios 设备上的“自动亮度”选项切换到关闭位置,如果有,它是什么?
【问题讨论】:
如果没有,设置应用程序将无法执行此操作。所以是的。 @H2CO3 我不认为这是一个是/否问题 @Artem:当我写那条评论时,确实如此。现在不是了。 @АртёмЦарионов 不,肯定不是。对于造成的混乱,我深表歉意。 @H2CO3 你知道我在哪里可以访问这种方法吗?任何特定的 API 或框架? 【参考方案1】:我无法与任何权威人士交谈(无法证明是否定的,等等),但这似乎不像 Apple 会让 3rd 方应用程序能够修改的设置。当然,Settings.app 会修改它,但这并不意味着有公共 API 可以做到这一点。由于这篇文章中没有jailbreak
标签,我将继续假设提问者在询问公共 API。我会选择“你不能”。
【讨论】:
您要小心,因为您知道我倾向于不赞成“这是不可能的!!!”-没有免责声明的帖子。好习惯! 感谢您的回复。我实际上指的是公共 API。 我似乎错了!wantsSoftwareDimming
FTW。 (或者可能不是?)【参考方案2】:
当您在应用程序内部时可以调整亮度,并且它在 UIScreen 类中可用 -
这是文档 - http://developer.apple.com/library/ios/#documentation/uikit/reference/UIScreen_Class/Reference/UIScreen.html#//apple_ref/occ/instp/UIScreen/brightness
但 Apple 的官方公共 API 不允许 iOS 应用访问“设置”应用中的“常规”设置。因此,您将无法更改设置应用内的切换按钮。
【讨论】:
【参考方案3】:Objective-C
[[UIScreen mainScreen] setBrightness:1.0];
是要走的路。是的,您可以以编程方式进行。只需传递 0.0 到 1.0 之间的值即可。根据苹果的说法是有效的,你不会遇到任何问题。
Swift 3+
UIScreen.main.brightness = CGFloat(1.0)
https://discussions.apple.com/thread/2009141?tstart=0
【讨论】:
这并没有回答原来的问题。【参考方案4】:但您可以定期检查亮度,并在您的应用程序运行时将其调整到您希望的亮度(如果您真的需要)。
【讨论】:
应该通过收听brightnessDidChangeNotification
来代替。
这一定是这样做的@meaning-matters 我不知道当时有这样的通知。
查看我的回复以了解如何实施。【参考方案5】:
根据希望的回答,对于那些希望在屏幕自动改变亮度时得到通知的人:
func trackBrightness()
// Track brightness changes
NotificationCenter.default.addObserver(self, selector: #selector(brightnessDidChange), name: UIScreen.brightnessDidChangeNotification, object: nil)
@objc func brightnessDidChange()
let newBrightness = UIScreen.main.brightness
// Do something
【讨论】:
以上是关于如何以编程方式关闭自动亮度?的主要内容,如果未能解决你的问题,请参考以下文章