Iphone 应用程序处于后台时手电筒不工作
Iphone flashlight not working while app is in background
您好,我正在使用基于位置的应用程序,想使用 iphone 相机手电筒,而 background.Unfortunately 手电筒仅在前景工作,它会自动关闭闪光灯背景即使代码正在执行。
我使用的代码只能在前台工作
#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 的沙盒不允许您在应用程序处于后台时保持闪光灯开启。
除非我们谈论的是越狱应用程序,否则没有解决方法。
编辑:
Apple 对其系统 API 的使用非常严格。特别是涉及到:
- 用户隐私
- 电池寿命
- 用户体验
就手电筒而言,最后两项是相关的。 Apple 不会让应用程序在不在前台时耗尽电池电量,并且 iOS 用户已经习惯了手电筒、相机、麦克风......在进入后台时会立即禁用(麦克风除外)在某些背景模式情况下)。
要回答对您初始 post 的评论,iOS 控制您的硬件。因此,由于 Apple 决定他们不希望在用户关闭应用程序时灯一直亮着,因此 iOS 只会在您的应用程序进入后台时关闭闪光灯。您的应用无权阻止它。
您好,我正在使用基于位置的应用程序,想使用 iphone 相机手电筒,而 background.Unfortunately 手电筒仅在前景工作,它会自动关闭闪光灯背景即使代码正在执行。
我使用的代码只能在前台工作
#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 的沙盒不允许您在应用程序处于后台时保持闪光灯开启。
除非我们谈论的是越狱应用程序,否则没有解决方法。
编辑:
Apple 对其系统 API 的使用非常严格。特别是涉及到:
- 用户隐私
- 电池寿命
- 用户体验
就手电筒而言,最后两项是相关的。 Apple 不会让应用程序在不在前台时耗尽电池电量,并且 iOS 用户已经习惯了手电筒、相机、麦克风......在进入后台时会立即禁用(麦克风除外)在某些背景模式情况下)。
要回答对您初始 post 的评论,iOS 控制您的硬件。因此,由于 Apple 决定他们不希望在用户关闭应用程序时灯一直亮着,因此 iOS 只会在您的应用程序进入后台时关闭闪光灯。您的应用无权阻止它。