我正在开发一个在后台模式下运行的应用,以便我的应用从BTLE附件接收BT通知。
当我收到特定通知时,我想拍一张照片是应用程序是在后台还是前台运行。
第一个问题: Apple会因为在后台模式下拍照而拒绝该应用吗?
第二个问题: 这样做的最佳选择是什么?
起初我考虑过使用UIImagePickerController,但最后我正在使用AVFoundation AVCam example,因为我不需要显示预览。
但是,第三个也是最后一个问题:我可以展示预览吗? 我试过使用以下代码。如果应用程序在前台模式下运行,它可以正常工作,但不适用于后台模式:
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"iPhone5Storyboard" bundle:nil];
AVCamViewController *camViewController = [mainStoryboard instantiateViewControllerWithIdentifier:@"ViewControllerCamera"];
UIViewController *rootVC = [[(AppDelegate *) [[UIApplication sharedApplication] delegate] window] rootViewController];
[rootVC presentViewController: camViewController animated:YES completion:nil];
很多疑惑。
答案 0 :(得分:1)
首先,当应用程序不在前台时,您无法拍照。这只是iOS的核心限制。 (你可以用越狱的iPhone做到这一点。)
至于问题的第二部分,AVFoundation是一种使用相机功能的好方法。它在视图演示和您想要应用于视频流的任何类型的过滤器上都很灵活。 AVCam示例就是一个很好的例子。
对于第三点,这可以追溯到第一点。无论你使用什么,你都不能在后台拍照,除非它在前台并且用户已经允许。
我建议您提交本地通知,并要求用户在您想要拍照时将应用程序带到前台。可能不是你想听到的新闻,但这就是Apple打算如何使用它。