我已經看到以前的文章中無法確保您可以將屏幕亮度恢復到用戶在您的應用程序中調整它之前的值(即捕獲亮度級別屏幕在你的應用程序加載之前,並在應用程序終止或進入後臺之前重置爲該屏幕亮度)。看起來,這可能是Apple爲了避免在應用程序終止時用戶不知道的重大改變而做的。但看起來蘋果以某種方式將其與Passbook應用程序拉開了關係。請注意,當您啓動Passbook應用程序時,屏幕亮度會增加,以便掃描儀可以更好地讀取條形碼,但是當您按Home按鈕並退出Passbook應用程序時,屏幕亮度將恢復到之前的狀態。如果蘋果能做到這一點,爲什麼我們不能?任何人都知道Passbook應用如何做到這一點?在iOS中終止應用程序時恢復屏幕亮度
回答
這是一個非常簡單的機制,是在iBooks 1.5+的基礎上引入的,最後在iOS 5中增加了+[UIScreen brightness]
API後才能使用。因爲它接受0.0-1.0的簡單浮點數,一個簡單的方法,並且可以在任何UIApplication委託方法中簡單地進行恢復。事實上,我寫了一個示例應用程序(OOH,Shiny),它可以在啓動時恢復屏幕亮度,並在退出時保存它。
明智地使用它,沒有多少人喜歡他們的應用程序將屏幕亮度推到100%,或在重新啓動時將其調暗到不可讀的5%。 – CodaFi
我其實是在尋找相反的東西。我想將應用程序關閉時打開應用程序之前的屏幕亮度恢復到原來的水平(例如,如果應用程序的用戶決定在應用程序中始終調整屏幕亮度,我希望亮度返回到用戶關閉應用程序時進入應用程序之前的內容)。問題是,似乎沒有辦法可靠地確保應用程序總是在終止之前恢復「保存的」屏幕亮度值。有幾個人猜測,蘋果可能會阻止開發人員這樣做,以避免突然的變化。 – 1wayswim
這不完全是「相反」,就像對示例應用程序的修改一樣。刪除滑塊,在defaults.plist中建立一個您想要的亮度設置值,然後將恢復代碼放入其中一種終止方法中。 – CodaFi
static CGFloat s_brightness = 0.5f;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
s_brightness = [[UIScreen mainScreen] brightness];
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application
{
[[UIScreen mainScreen] setBrightness:s_brightness];
}
似乎只能在iOS 8上恢復... – jjxtra
在斯威夫特
static var defaultBrightNess:CGFloat = 0.5;
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool
{
AppDelegate.defaultBrightNess = UIScreen.main.brightness;
UIScreen.main.brightness = 1.0;
return true
}
func applicationWillEnterForeground(_ application: UIApplication) {
UIScreen.main.brightness = 1.0
}
func applicationWillResignActive(_ application: UIApplication) {
UIScreen.main.brightness = CGFloat(AppDelegate.defaultBrightNess)
}
- 1. 終止前更改屏幕亮度
- 2. 防止在目標屏幕解鎖後的亮度恢復c
- 3. 如何在應用程序運行時始終保持Android屏幕亮度
- 4. iOS 7自動亮度控制應用程序屏幕亮度設置
- 5. Bug恢復亮度iOS
- 6. iOS:在應用處於後臺時設置屏幕亮度
- 7. ios上的密碼保護屏幕在恢復應用程序時被延遲
- 8. 在Mac OS X應用程序中調整屏幕亮度
- 9. 無法恢復應用程序退出時的亮度
- 10. 恢復應用程序時忽略初始屏幕活動 - Android
- 11. 屏幕亮度控制程序
- 12. 的iOS:將某個應用時終止休假屏幕
- 13. 避免在鎖定屏幕恢復應用程序
- 14. 當屏幕角度變化時喚醒iOS應用程序?
- 15. WindowManager.addView可以防止其他應用程序設置屏幕亮度
- 16. 改變屏幕亮度的onPause(Android應用程序)
- 17. 調整Windows 8應用程序的屏幕亮度
- 18. 將屏幕亮度控制添加到Android應用程序
- 19. iOS應用在解鎖屏幕後不能恢復
- 20. 終止Python程序,但恢復數據
- 21. 在應用程序運行時在iOS中blacken屏幕
- 22. 防止iOS應用程序擴展中的調光屏幕
- 23. 在iOS中鎖定屏幕時訪問應用程序
- 24. 在iOS中用Swift調整/觸摸屏幕亮度
- 25. 如何恢復到正確的應用程序終止(cocos2d的)
- 26. 改變屏幕亮度時,自動亮度調節啓用
- 27. VIM屏幕恢復
- 28. 恢復主屏幕
- 29. 應用程序在ios中刪除圖像時終止
- 30. 無法應用系統屏幕亮度編程中的Android
蘋果能做到這一點,因爲這是他們的平臺。 – JustSid
成爲國王真好! – 1wayswim