我注意到我的iPhone,在陽光直射幾秒鐘後,屏幕會調整變得更明亮,更暗淡等。我想知道是否有方法與此傳感器交互?閱讀iPhone的環境光傳感器
我有一個應用程序在外面使用。當您進入直射光線時,在調整之前很難看到屏幕上的幾個部分。即使如此,它並不總是像我希望的那樣明亮。我想實現高對比度的戶外觀看皮膚,以及室內觀看時的低對比度。
是否可以讀取光傳感器數據,如果是這樣,我該如何提取這些傳感器值?
但是,我會假設有一個光傳感器,因爲相機知道何時使用閃光燈。
我注意到我的iPhone,在陽光直射幾秒鐘後,屏幕會調整變得更明亮,更暗淡等。我想知道是否有方法與此傳感器交互?閱讀iPhone的環境光傳感器
我有一個應用程序在外面使用。當您進入直射光線時,在調整之前很難看到屏幕上的幾個部分。即使如此,它並不總是像我希望的那樣明亮。我想實現高對比度的戶外觀看皮膚,以及室內觀看時的低對比度。
是否可以讀取光傳感器數據,如果是這樣,我該如何提取這些傳感器值?
但是,我會假設有一個光傳感器,因爲相機知道何時使用閃光燈。
使用GSEventSetBacklightLevel();
,這需要<GraphicsServices/GraphicsServices.h>
嘗試。這是如何以編程方式調整亮度級別的方法。還有一個get
選項,所以我認爲這可能會有你以後的信息。
根據這個頁面,如果你試圖弄亂你的應用程序,蘋果會將你的應用程序從應用程序商店中刪除。http://www.iphonedevsdk.com/forum/iphone-sdk-development/6400-adjusting-screen-brightness.html亮度。我真的只是想根據手機檢測到的亮度來改變配色方案。 – 2011-06-10 17:00:53
@George,好吧,請閱讀當前設置並設置通知。然後你可以相應地調整。 – PengOne 2011-06-10 17:02:20
對不起,我沒有看到這個'get'選項。你能發佈一個鏈接嗎? – Randomblue 2015-02-01 17:16:26
要讀取環境光線傳感器數據,您需要在IOKit框架中使用IOHID。
http://iphonedevwiki.net/index.php/AppleISL29003
http://iphonedevwiki.net/index.php/IOKit.framework
然而,這需要私有頭,所以如果你使用它,蘋果公司可能不會讓你的應用程序進入App Store。
我不斷地問iOS的論壇是否會出現在未來的環境光傳感器的讀數支持,但無濟於事。
在另一方面,這是一個不同的想法(可能是愚蠢的一個),使用該設備的屏幕的亮度,你可以得到的外部條件一定的價值。
0.12(暗)至0.99(光)
下一行會得到這些值,給它一個嘗試,把一些燈開啓和關閉在設備以獲取不同的值。
NSLog(@"Screen Brightness: %f",[[UIScreen mainScreen] brightness]);
顯然應該打開自動亮度功能才能使其工作。
問候。
非常聰明,像魅力一樣工作! :D 儘管根據Apple文檔,它不會從0.12到0.99: 「此屬性的值應該是0.0到1.0之間的一個數字,包括在內。」 – 2013-06-20 04:55:36
這是真棒! – 2015-08-17 13:11:38
當電平改變時,UIScreen'也發佈'UIScreenBrightnessDidChangeNotification'。 – Benjohn 2015-09-16 16:49:05
實際上,你可以使用相機要做到這一點,這是獨立於用戶的屏幕亮度設置(工程,即使自動亮度爲OFF)。
您從視頻幀的元數據讀取的亮度值,因爲我在this Stack Overflow answer解釋。
會打開相機嗎?因此也要求用戶允許這樣做? – 2016-10-21 14:21:03
是的,會的。任何使用相機都可以做到這一點。 – Wildaker 2016-10-24 07:34:09
這是非常令人沮喪,這個問題(和[關於使用屏幕亮度答案】(http://stackoverflow.com/a/15937484/2547229))不露面最S.O.我在這個主題上進行搜索。即使知道問題和答案在這裏,我也無法找到它。幸運的是,我在我的代碼中添加了一條評論鏈接。 – Benjohn 2015-09-16 16:48:13
我已經編輯了標題,希望能在結果中顯示 - 對不起,如果這不合適! – Benjohn 2015-09-16 17:00:29