检测相机的主动使用
Posted
技术标签:
【中文标题】检测相机的主动使用【英文标题】:Detecting active use of camera 【发布时间】:2012-05-29 13:56:08 【问题描述】:我需要在我的应用运行时检测其他应用是否正在使用 iPhone/iPad 的摄像头。我的应用程序继续在后台运行(音频),但它不使用相机本身。我只需要确定其他应用程序是否正在使用任何相机。
此外,我希望使用尽可能少的 CPU 资源来最大限度地减少电池使用量。
我试过没有成功:
运行一个简单的AVCaptureSession
来捕获中断通知(它从不通知)
在所有AVCaptureDevice
s 上致电lockForConfiguration
定期监控AVCaptureInputPort
的enabled
属性(始终是YES)
定期监控AVCaptureDevice
的connected
属性(始终是YES)
澄清:
我不需要检测摄像头是否存在的方法 我不需要任何方法来确定我的应用中的相机是否处于活动状态感谢您的任何指点。
编辑:这是一项安全功能:如果恶意(前台)应用程序在我的应用程序处于活动(后台)使用状态时拍摄用户或周围环境的照片或视频的可能性很小,我想警告用户.
【问题讨论】:
【参考方案1】:ios 文档没有说明在其他应用运行相机时通知您的应用的方式。这听起来也不像是苹果公司会允许的。此外,知道另一个应用程序是否正在运行相机也没有任何好处,因为:a)如果相机不活动,您的应用程序将无法使用相机,并且 b)您的应用程序不能以任何方式影响另一个应用程序的操作。试着想一个替代你想要达到的目标,因为不幸的是,这种方式是不可能的。
【讨论】:
非常感谢。请注意,您确实会收到 iOS 音频设备的此类通知。而且我不一定需要通知,我可以每隔 X 秒轮询一次。所以一个方法“isCameraActive”就足够了。相信我,只要知道/将/对我的应用有任何好处。 即使有轮询,我也不认为这是可能的。您能解释一下为什么需要知道相机是否处于活动状态吗?也许有一个解决方法。 您无法实现这样的安全功能。确保恶意应用程序不会在应用商店中出售是 Apple 的工作,而 iOS 的工作是确保后台应用程序不能使用相机。由于 iOS 不允许应用在后台运行相机,因此您不必担心检查它。 @Florian - 您看到在播放音频时收到通知的原因是后台应用程序也可以播放音频。考虑到潜在的隐私影响,没有后台应用程序可以或将能够从相机中捕获,因此您不会收到通知。恐怕您尝试做的事情不会是您可以在未越狱的设备上实现的。 我阅读了您的答案,但不是 100% 那样。当我的应用程序在后台运行音频时,我不希望任何前台应用程序拍摄照片或视频。如果他们仍然这样做,我想知道。为了用户的隐私。当我可以查询另一个应用程序是否正在使用相机时,我看不到侵犯隐私权。所以我再等一会儿,看看有没有人找到窍门。以上是关于检测相机的主动使用的主要内容,如果未能解决你的问题,请参考以下文章