应用程序在后台时 iPhone 手电筒不工作

2023-11-21

您好,我正在使用基于位置的应用程序,并且想要在后台使用 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 的沙箱不允许您在应用程序处于后台时保持闪光灯打开。
除非我们谈论的是越狱的应用程序,否则没有解决方法。

Edit:
Apple对其系统API的使用非常严格。尤其是当涉及到:
- 用户隐私
- 电池寿命
- 用户体验

就手电筒而言,最后两项是相关的。 Apple 不会让应用程序不在前台时耗尽电池,iOS 用户已经习惯了手电筒、摄像头、麦克风...在进入后台时会立即禁用(某些后台模式下的麦克风除外)例)。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

应用程序在后台时 iPhone 手电筒不工作 的相关文章

  • 实现点击任意位置即可取消的最佳方式(App Store 下载按钮)?

    我有一个用户界面元素 当我点击它时 它会动画到中间状态 点击屏幕上其他任何位置应取消交互 而再次点击 UI 元素则应继续 我已经使用防护视图 窗口的子视图和所有其他子视图之上 实现了这一点 然后在动画之前将元素重新设置为防护视图 但我很好奇
  • 如何在Android中没有Intent且没有任何视图窗口的情况下拍照

    大家好 我正在尝试弄清楚如何通过按下按钮来拍照 而不显示任何预览 我的想法是 我想要拍摄并保存照片 但之前或之后没有照片的视觉预览 到目前为止 我能够获取拍照并将其保存到磁盘的代码 没有任何问题 但如果没有表面视图或预览 我似乎无法做到这一
  • iBeacon 发射机的主要和次要最大值是多少?

    问题 1 iBeacon发射机的major和minor的最大值是多少 2 我只使用一个UUID startRangingBeaconsInRegion检测主要值和次要值是否有限制 Major 和 Minor 都是 16 位 所以最大的主要
  • 仅针对具有 callayer 的cornerRadius 的某些角的圆角图像

    我试图只圆化图像的左上角 因此它无法适当地适合组样式的表视图单元格 我可以使用下面的代码将 4 个角圆化 有谁知道一种简单的方法可以使一个角变圆 cell imageView layer masksToBounds YES cell ima
  • Objective-C:NSLinguisticTagger“纽约”与“纽约”

    我刚刚开始玩NSLinguisticTagger我的代码基于此博客 NSLinguisticTagger NSHipster com http nshipster com nslinguistictagger NSLinguisticTag
  • 函数 objc_getAssociatedObject 的隐式声明在 C99 中无效

    我正在尝试在 Objective C 类别上使用关联对象 但收到此警告 Implicit declaration of function objc getAssociatedObject is invalid in C99 如果这有什么不同
  • `opencv.android.JavaCameraView` 和 `opencv.android.NativeCameraView` 有什么区别

    正如主题中所述 有什么区别opencv android JavaCameraView and opencv android NativeCameraView 与其他主要优点相比 有哪些优点可以提供更多选择 来自OpenCV 文档 http
  • NSNumberFormatter 货币没有符号?

    我正在使用 NSNumberFormatter 从字符串中获取货币值 效果很好 我使用这段代码来执行此操作 NSNumberFormatter nf NSNumberFormatter alloc init nf setNumberStyl
  • 如何在 sqlite3 数据库中存储音频文件并在 iphone 中播放它们?

    我想在数据库中存储音频文件 任何支持 mp3 wav 和 iphone 的格式 并在 iPhone 上播放它们 知道如何做到这一点吗 我不知道为什么你想将音频文件存储在 SQL 数据库中 但 sqlite3 支持 BLOB 因此 将它们存储
  • 如何将 UIView 的子视图居中

    我有一个UIView里面一个UIView我和我想要内在UIView始终在外部居中 而不必调整宽度和高度的大小 我已经设置了支柱和弹簧 使其位于顶部 左侧 右侧 底部 而无需设置调整大小 但它仍然没有居中 任何想法 你可以这样做 它总是有效的
  • Segue Unwind 返回到最后一个特定的视图控制器

    有没有一种方法可以让一个按钮展开回特定的视图控制器 例如 假设我有 ViewController A 和 B 两者都模态地转至 ViewController C 现在我了解如何转回之前的视图控制器之一 正如这里所解释的 https stac
  • 在核心数据中伪造动态模式?

    通过阅读有关 Core Data 的 Apple 文档 我了解到当您需要动态模式时不应该使用 Core Data 如果我想为用户提供创建自己的属性的能力 那么在核心数据模型中 如果我创建一些 虚拟 属性 例如 自定义十进制 1 自定义十进制
  • NSPopUpButton、绑定和缩短的寿命

    我试图了解使用 NSPopUpButton 是多么困难 它无疑是 Cocoa 中最难编程的用户元素 至少就我而言是这样 我想到的用例如下 我有一个名为 Port 的类 代表串行端口 属性中有一个名称字段 在 NSPopUpButton 中
  • UITableView/UITableViewCell 点击事件响应?

    我一直在谷歌搜索 试图弄清楚当点击 UITableView 中的一行 或单元格 时会调用什么类型的事件句柄 但一直无法弄清楚 我试图在点击单元格时更改其图像属性 Thanks 点击表行时有两个可能的事件 选择该行和附件视图 通常是 更多详细
  • 大端还是小端? [复制]

    这个问题在这里已经有答案了 可能的重复 如何检查系统是大端还是小端 https stackoverflow com questions 4181951 how to check whether a system is big endian
  • PresentModalViewController 上的内存泄漏

    我正在打开相机供用户拍照 当我拍照并按下 使用 按钮时 我不断出现内存泄漏 selfpresentModalViewController imagePickeranimated YES 完整代码 imagePicker UIImagePic
  • 具有 URL 样式格式的 NSTextField

    我一直在尝试让 NSTextField 识别 URL 并且一般来说我的代码可以工作 我按照苹果的说明进行操作这一页 http developer apple com library mac qa qa1487 关于如何使用 hyperlin
  • 如何在 Objective-C 中运行时查找字符串常量?

    我的公司开发了一个广告 SDK 可以协调其他广告网络 在运行时 它通过使用检查其他广告网络是否存在NSClassFromString 并发送这些类消息 如果存在 这对于 Objective C 对象来说效果很好 但是如何在运行时加载字符串常
  • 如何禁用 iOS 8 表情符号键盘?

    iOS 8 中是否有任何选项可以停止显示表情符号键盘 它在数字键盘和安全文本中不可用 但对于电子邮件来说它是存在的 如果无法禁用它如何从表情符号中获取字符串值 尝试这个 BOOL textField UITextField textFiel
  • 如何在 Objective C 中创建 2D NSArray 或 NSMutableArray?

    我想问一下客观C的问题 我想在 Objective C 中创建一个 2D NSArray 或 NSMutableArray 我该怎么办 数组中存储的对象是NSString 非常感谢你 这当然是可能的 但我认为值得注意的是 NSArray 只

随机推荐

  • 如何避免多重定义链接错误?

    除了移动hello 将函数复制到另一个源 cpp 文件中或重命名该函数 还有其他方法可以避免链接错误吗 静态LibA h ifndef STATIC LIBA HEADER define STATIC LIBA HEADER int hel
  • Java exec方法,如何正确处理流

    从 Java 生成和使用外部进程的流 IO 的正确方法是什么 据我所知 由于缓冲区大小可能有限 java最终输入流 进程输出 应该在线程中并行消耗以生成进程输入 但我不确定我最终是否需要与这些消费者线程同步 或者只是等待进程退出就足够了wa
  • 如何从 shell 或 windows 命令行以内联方式执行 java jshell 命令

    有没有办法在 REPL 上执行 java 命令 jshell 作为内联命令而不启动它 例如 Perl 内联命令 perl e printf 06d 19 000019 我必须启动 jshell 才能运行任何命令 jshell Welcome
  • Java中TreeSet部分视图的size()复杂度是多少

    我想知道时间复杂度是多少size 用于 TreeSet 的部分视图 假设我要添加随机数来设置 并且我不关心口是心非 final TreeSet
  • import gtk/glib 产生 ImportError: DLL load failed

    我在 Windows XP SP3 上从各自的网站安装了最新版本的 python 2 6 5 gtk pygtk 和朋友 当您尝试导入 gtk 或仅导入 glib 时 会引发 ImportError Python 2 6 5 r265 79
  • 自动打开文件 Android 的 Intent Chooser

    我想打开一个文件android 我想做的是文件类型是否为Image然后我想打开Intent Chooser其中包含可以查看图像的应用程序 如果是视频类型 则使用可以查看视频的应用程序打开 Intent Chooser 我怎样才能做到这一点
  • 通过单击按钮来增加数字

    我有号码 likes number在我页面上的 div 块中 我想知道如何通过单击按钮动态增加它 My code div span class figure span div
  • 在纯 JavaScript 中显示 AdMob 广告(或其他广告提供商)的任何方式

    有没有办法只使用纯 JavaScript 来展示 AdMob 广告 或者以任何其他方式 我可以直接在使用 PhoneGap Build 构建的 PhoneGap 应用程序中使用它 我正在使用 PhoneGap 开发移动应用程序 我见过很多解
  • 将 MyISAM 转换为 InnoDB。有利?结果?

    我们正在运行一个社交网站 该网站记录每个成员的行为 包括访问其他成员的页面 这涉及到对数据库的大量写入 这些操作存储在 MyISAM 表中 由于某些内容开始对 CPU 造成负担 我的第一个想法是 MyISAM 的表锁定对 CPU 造成了这种
  • TextMate、rvm 和 TM_RUBY

    In the TextMate RVM 说明它说要设置的文本TM RUBY to Users wayne rvm bin textmate ruby and in 图片它显示它设置为rvm auto ruby 我决定将其设置为rvm aut
  • 如何创建 Ktor 嵌入式服务器的 .jar(创建可执行文件)

    我对 Kotlin Ktor 和 Gradle 非常陌生 能够按照 Ktor 站点中的说明创建嵌入式服务器 使用以下代码 博客应用程序 kt package blog import org jetbrains ktor netty impo
  • 如何从数据类型为列表的 Pandas 系列中删除 NaN?

    I ve a pandas Series其中每行的 dtype 是一个列表对象 例如 gt gt gt import numpy as np gt gt gt import pandas as pd gt gt gt x pd Series
  • 覆盖风格和构建类型之外的应用程序 ID

    我有一个有多种口味的应用程序 A B C 和两种构建类型 debug release 在构建类型中debug我向应用程序 ID 添加后缀 如下所示 debug applicationIdSuffix debug 这对口味来说很好A and
  • 我应该使用什么 URL 来连接到 SVN 存储库?

    我安装了 TurtoiseSVN 和 ankhSVN 我在我的计算机上创建了一个存储库 C Documents and Settings user1 My Documents Subversion Repository 我正在尝试从同事的计
  • Surefire 重新运行失败的测试不起作用

    我想重新运行一个我知道会失败的测试 因为我正在尝试测试 Surefire 参数以重新运行失败的测试 我尝试使用这两个命令运行 Maven 但它们都没有按预期工作 Dsurefire rerunFailingTestsCount 2 Dtes
  • 上传文件时获取 API 和 multer 错误

    我正在尝试使用 fetch API 将文件上传到 node js 服务器 如果与此有关 我正在使用 github 的 pollyfill https github com github fetch 请求是这样完成的 const data n
  • keras AssertionError:类型“experimentalOptimizer”的重复注册

    我正在尝试为 CartPole v1 游戏构建深度 Q 学习代码 但是我遇到了断言错误 AssertionError Duplicate registrations for type experimentalOptimizer 一些堆栈跟踪
  • Select2 改变容器位置

    如何调整 Select2 容器的位置 以便搜索框位于原始选择元素的正上方 如本网站所示 http www jobnisit com en 在我看来 它在用户界面方面看起来更干净 诗 抱歉 我现在无法发布图片 有两种方法可以做到这一点 1 使
  • 将 Chrome 浏览器打包到 HTML5 Android 应用程序中

    我们正在开发几个基于 Sencha 框架的 HTML5 应用程序 并考虑将它们打包到 PhoneGap 等应用程序中 然而 即使你将这些打包到应用程序中 我假设你仍然需要处理 Android 碎片问题 因为各个制造商对浏览器进行了奇怪的修改
  • 应用程序在后台时 iPhone 手电筒不工作

    您好 我正在使用基于位置的应用程序 并且想要在后台使用 iPhone 相机手电筒 不幸的是 手电筒仅在前台工作 即使代码正在执行 它也会自动关闭后台的闪光灯 我使用的代码仅在前台运行 import