应用程序在后台时,iPhone手电筒无法工作

苏拉杰·托马斯

嗨,我正在使用基于位置的应用程序,并希望在后台使用iphone相机闪光灯。不幸的是,闪光灯仅在前台工作,即使代码正在执行,它也会在后台自动关闭闪光灯。

我使用的代码仅在前台工作

#import <AVFoundation/AVFoundation.h>
//flashcode
Class captureDeviceClass = NSClassFromString(@"AVCaptureDevice");
if (captureDeviceClass != nil) {
    AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
    if ([device hasTorch] && [device hasFlash]){

        [device lockForConfiguration:nil];
        if (device.torchMode == AVCaptureTorchModeOff)
        {
            [device setTorchMode:AVCaptureTorchModeOn];
            [device setFlashMode:AVCaptureFlashModeOn];
            //torchIsOn = YES;
        }
        else
        {
            [device setTorchMode:AVCaptureTorchModeOff];
            [device setFlashMode:AVCaptureFlashModeOff];
            // torchIsOn = NO;
        }
        [device unlockForConfiguration];
    }
}
昆汀生活

这是正常现象。
Apple的沙箱操作不允许您在应用程序处于后台时继续打开闪光灯。
除非我们谈论的是越狱应用程序,否则没有解决方法。

编辑:
苹果对系统的API使用非常严格。特别是在以下方面:
-用户隐私
-电池寿命
-用户体验

对于手电筒,最后两项是相关的。在不处于前台的情况下,Apple不会允许应用耗尽电池电量; iOS用户习惯于进入后台时会立即禁用手电筒,相机,麦克风...(某些背景模式下的麦克风除外)情况)。

为了回答您对初始帖子的评论,iOS控制着您的硬件。因此,由于Apple决定当用户关闭应用程序时不希望灯一直亮着,因此iOS只会在您的应用程序进入后台时关闭闪光灯电源。您的应用无权阻止它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章