Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何以编程方式关闭自动亮度?_Ios_Objective C_Settings_Brightness_Screen Brightness - Fatal编程技术网

Ios 如何以编程方式关闭自动亮度?

Ios 如何以编程方式关闭自动亮度?,ios,objective-c,settings,brightness,screen-brightness,Ios,Objective C,Settings,Brightness,Screen Brightness,我想知道是否有一种方法可以将iOS设备上的“自动亮度”选项切换到关闭位置,如果有,是什么方法?我无法与任何权威人士交谈(无法证明是否定的,等等),但这似乎不像苹果会让第三方应用程序能够修改的设置。当然,Settings.app会对其进行修改,但这并不意味着有公共API可以进行修改。既然这篇帖子上没有越狱标签,我就假设提问者询问的是公共API。我要说的是“你不能”。当你在应用程序中时,亮度可以调整,并且在UIScreen类中可用- 这是文件- 但苹果的官方公共API不允许iOS应用程序访问设置应

我想知道是否有一种方法可以将iOS设备上的“自动亮度”选项切换到关闭位置,如果有,是什么方法?

我无法与任何权威人士交谈(无法证明是否定的,等等),但这似乎不像苹果会让第三方应用程序能够修改的设置。当然,Settings.app会对其进行修改,但这并不意味着有公共API可以进行修改。既然这篇帖子上没有越狱标签,我就假设提问者询问的是公共API。我要说的是“你不能”。当你在应用程序中时,亮度可以调整,并且在UIScreen类中可用-

这是文件-


但苹果的官方公共API不允许iOS应用程序访问设置应用程序中的常规设置。因此,您将无法更改设置应用程序中的切换按钮。

Objective-C

[[UIScreen mainScreen] setBrightness:1.0];
这是一条路要走。是的,你可以按程序来做。只需将该值传递到0.0到1.0之间,就可以了。根据苹果的说法,它是有效的,你不会面临任何问题

Swift 3+

UIScreen.main.brightness = CGFloat(1.0)

但如果您确实需要,您可以定期检查亮度,并在应用程序运行时将其调整到您希望的水平

根据Hope的回答,对于那些希望在屏幕自动改变亮度时得到通知的人:

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
}

如果没有,则设置应用程序无法执行此操作。所以有。@H2CO3我不认为这是肯定/否定的question@Artem当前位置当我写那篇评论时,它是。现在不是了。@Аааааааааааааааа。很抱歉造成混淆。@H2CO3您知道我在哪里可以使用这种方法吗?任何特定的API或框架?你要小心,因为你知道我倾向于否决“这是不可能的!!!”——没有免责声明的帖子。好习惯!谢谢你的回复。事实上,我指的是公共API。我似乎错了<代码>WANTS软件调光FTW。(或者可能不是?)应该通过收听
brightnessDidChangeNotification
来完成。这一定是这样做的方法@意思是我当时不知道有这样的通知。请参阅我的回答,了解如何实现。但这并没有回答最初的问题。