Ios 检测摄像机的主动使用

Ios 检测摄像机的主动使用,ios,camera,Ios,Camera,当我的应用程序运行时,我需要检测其他应用程序是否正在使用iPhone/iPad的摄像头。我的应用程序一直在后台运行(音频),但它不使用相机本身。我只需要知道是否有其他应用程序正在使用任何摄像头 此外,我希望使用尽可能少的CPU资源来最小化电池的使用 我试过但没有成功: 运行简单的AVCaptureSession以捕获中断通知(从未通知) 在所有AVCaptureDevices上调用lockForConfiguration 定期监视AVCaptureInputPort的enabled属性(始终为

当我的应用程序运行时,我需要检测其他应用程序是否正在使用iPhone/iPad的摄像头。我的应用程序一直在后台运行(音频),但它不使用相机本身。我只需要知道是否有其他应用程序正在使用任何摄像头

此外,我希望使用尽可能少的CPU资源来最小化电池的使用

我试过但没有成功:

  • 运行简单的
    AVCaptureSession
    以捕获中断通知(从未通知)
  • 在所有
    AVCaptureDevice
    s上调用
    lockForConfiguration
  • 定期监视
    AVCaptureInputPort
    enabled
    属性(始终为是)
  • 定期监视
    AVCaptureDevice
    connected
    属性(始终是)
请澄清:

  • 我不需要一种方法来检测摄像机的存在
  • 我不需要一种方法来确定摄像头是否在我的应用程序中处于活动状态
谢谢你的指点


编辑:这是一项安全功能:如果在我的应用程序处于活动(后台)状态时,有一个恶意(前台)应用程序正在拍摄用户或周围环境的照片或视频,我想警告用户。

iOS文档没有说明当另一个应用程序运行摄像头时,可以通知你的应用程序的方式。这听起来也不像是苹果公司所允许的。此外,知道其他应用程序是否正在运行摄像头也没有任何好处,因为:a)如果摄像头未处于活动状态,则您的应用程序无法使用摄像头;b)您的应用程序无法以任何方式影响其他应用程序的操作。试着想出一个替代你想要实现的目标的方法,因为不幸的是,这是不可能的。

非常感谢。请注意,您确实会收到iOS音频设备的此类通知。我不一定需要通知,我可以每X秒进行一次投票。所以一个“isCameraActive”方法就足够了。相信我,仅仅知道/将会/对我的应用程序有任何好处。即使有了民意调查,我也不认为这是可能的。你能解释一下为什么你需要知道摄像机是否处于活动状态吗?也许有一个解决办法。你不能实现这样的安全功能。苹果的工作是确保应用商店中不会出售恶意应用,而iOS的工作是确保摄像头不会被后台应用使用。由于iOS不允许应用程序在后台运行摄像头,因此您不必担心是否需要检查它。@Florian-您看到播放音频时收到通知的规定的原因是后台应用程序也可以播放音频。考虑到潜在的隐私影响,没有任何后台应用程序能够或将能够从相机中捕获,因此您不会收到此通知。我担心你想做的事情不会在非越狱设备上实现。我读了你的答案,但不是100%那样。当我的应用程序在后台进行音频活动时,我不希望任何前台应用程序拍照或视频。尽管如此,我还是想知道。为了用户的隐私。当我可以查询其他应用程序是否使用摄像头时,我看不到侵犯隐私的情况。所以我再等一会儿,看看有没有人找到了窍门。