我能实现像apple wallet app这样的亮度功能吗?

时间:2016-06-23 08:18:19

标签: ios objective-c xcode wallet

当app在前台时,Apple钱包设置全亮度。当应用程序进入后台或终止时,它将重置为正常亮度。

我想在我的应用中实现相同的功能。

我尝试使用[[UIScreen mainScreen] setBrightness:1.0]; 在设备锁定之前,应用程序所做的亮度更改仍然有效。

如果我的应用处于前台模式,我想设置全亮度,否则亮度将重置为之前的亮度级别。

1 个答案:

答案 0 :(得分:2)

所有这一切都没有工作,看看编辑

如果您在打开应用时设置了高亮度,则在现有时恢复以前的亮度,这里可以在AppDelegate中执行以下操作:

添加CGFloat previousBrightness

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    previousBrightness = [[UIScreen mainScreen] brightness];

    [[UIScreen mainScreen] setBrightness:1.0];

    return YES;
}

- (void)applicationDidEnterBackground:(UIApplication *)application {
    [[UIScreen mainScreen] setBrightness:previousBrightness];
}

修改:

经过一些研究,我发现实际上是iOS中的一个错误,阻止您在退出应用后改变亮度。自iOS 4以来已经报告了这个错误,并且在我尝试使用iOS 8时似乎无法解决,但它仍然无法正常工作......

有关该错误的更多信息,请参阅this thread on Apple Dev Forum

您唯一能做的就是为您需要的单步设置全亮度,并在用户不再需要时重置。例如,在许多应用程序中,我们在查看QR码时具有完全亮度,然后在点击交叉X'时恢复到之前的亮度。退出。

您可能需要在某些方面重新考虑您的应用,但在用户点击“主页”按钮后,您将无法恢复亮度。