检测到在后台拍摄的新照片

时间:2015-10-10 18:28:52

标签: ios iphone backgrounding

我在这个问题上已经挣扎了很长时间。 我有一个在iPhone上运行的应用程序(> = iOS7),我需要选择用户拍摄的所有照片(当然,在要求摄像头访问之后)并在满足某个标准时上传它们。显然,由于用户从相机应用程序而不是从我的应用程序内部拍摄照片,因此拍摄照片时,我的应用程序是背景的,并且用户在拍摄照片后并不总是重新打开应用程序。 由于我在我的应用中没有使用GPS / VoIP /附件,因此我没有在我的应用程序的plist中启用这些权限(我只启用了提取和通知,因为我使用这些权限)。 要知道用户拍摄了新照片,我尝试了两种不同的方法:(1)使用观察者和(2)从ALAssetLibrary中检索最后的照片,将最后一张照片创建日期保留在内存中并将其与最新照片进行比较检索。 当应用程序在前台运行时(这意味着如果我唤醒我的应用程序并执行它们,我可以使用这些方法之一正确地获取图片),这两个都很有效,但我还没有找到一种方法来制作其中任何一种方法在后台工作。 在第一种情况下,观察者仅在应用程序处于前台时获取通知,或者如果我有任何长时间运行的任务运行(具有3分钟限制),则在前三分钟获取通知。在第二种情况下,问题是类似的(我在长时间运行的后台任务上运行扫描,让它在扫描2分钟后进入睡眠状态,然后启动另一个执行相同操作的后台任务);似乎即使我在另一个内部产生多个后台任务,3分钟的时间限制仍然在任务中强制实施...... 我确信有一种方法可以实现这一点,因为我已经看到App Store上至少有一个其他应用程序完全没有这个特权(VoIP / GPS /附件等)。 任何人都有提示让我以正确的方式实现这一目标? 提前谢谢!

0 个答案:

没有答案