【问题标题】:hardware detect camera picture taken / shutter press硬件检测相机拍摄的照片/按下快门
【发布时间】:2018-07-23 01:02:22
【问题描述】:

我的目标是开发一个应用程序来同步 iPhone 相机拍摄的所有照片。

我搜索了很多,但找不到太多关于 iPhone 上相机快门的硬件事件。

是否有可能像清单中的android CAMERA_BUTTON BroadcastReceiver 一样,在没有专门启动应用程序的情况下,监听相机按钮是否被按下?

还是在现有 iOS 相机应用上叠加?

2018 年 2 月 5 日更新

我无法直接检测到相机按钮,也没有从相机拍摄的照片中进行持续检测(PHPhotoLibraryChangeObserver)。当应用程序被杀死时,所有侦听器也被杀死。但是,当应用程序使用 locationchange 机制启动时,我正在使用它

最后我使用Using the Significant-Change Location Service 来获取更改图片的检测以同步,正在进行中。我以NextCloudOwnCloud 为例,其中包含此部分。

使用重大变化定位服务

【问题讨论】:

  • 我不确定我是否理解您的问题。 iPhone 上没有硬件相机按钮。您可以指定一个按钮来拍照,当然,如果按下该按钮,您也可以收听。但是,仅当您构建自己的相机应用程序时。您不能“收听”另一个相机应用的相机按钮,因为它是一个沙盒应用。
  • 我的意思是一般来说,如果拍摄照片,Android 广播接收器会独立监听应用程序。关键是要检测是否在任何时候拍摄照片,而不需要一直运行的应用程序。
  • 答案是否定的。您无法检测到在别处按下的快门按钮。如果您想在捕获图像后立即获取图像,则可以通过注册更改观察者使用PHPhotoLibrary 获取这些图像。为此,您的应用应该正在运行,至少在后台状态下。
  • 有没有可能让它一直在后台运行,不会错过任何拍摄的照片?或者在现有的相机应用程序上进行某种覆盖,以便在默认相机应用程序启动时始终存在?

标签: ios iphone


【解决方案1】:

图像和视频的捕获是一个完整的软件相关过程,由 AVFoundation 框架中的类管理。应用程序无法访问 iPhone 的整个硬件,您无法直接监控硬件的使用情况。有一些系统框架,但这些对您没有帮助。 AVFoundation 没有任何通知将发布给已注册的观察者。

所有捕获的图像和视频都放在照片库中,当库中发生变化时,照片库会发出通知。您可以将您的应用程序注册为照片库中更改的观察者,并且您可以指定要观察的更改。您还可以收集已发生的特定更改,并让您的应用程序处理照片库中的更改。

我不知道的是,您是否可以将此用作远程更改,并在 iOS 在照片库中注册该更改时让您的应用程序启动。我知道您可以将您的应用程序编程为在接收到通知时启动,但我不知道这是否可以通过this 更改观察者来完成。我建议试一试。

希望这会有所帮助。

【讨论】:

  • PHPhotoLibraryChangeObserver 正在死机工作,保持应用程序运行并不容易。我现在正在更改我的计划以使用推送通知来获得肯定会执行的稳定代码流。它有好的一面和坏的一面,沙盒应用环境。
猜你喜欢
  • 2011-05-22
  • 2011-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多