【问题标题】:iOS: Is it possible to take screenshots while running as a background task?iOS:作为后台任务运行时是否可以截屏?
【发布时间】:2011-12-18 00:06:33
【问题描述】:

我想在我的应用处于后台时截取任何正在运行的应用的屏幕截图。

我知道我可以使用以下方法在 iOS 中截屏:

UIGraphicsBeginImageContext(webview.frame.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);

但这在后台任务中实际上是不可能的,因为 UIGraphicsGetCurrentContext 返回 NULL,我想要正在运行的应用程序的屏幕截图,而不是我的视图。有没有其他办法?

【问题讨论】:

  • 请详细说明您为什么要这样做。因为你真的在做连续的背景图像处理?或者只是在您获得背景之前拍摄您的视图快照?等等。
  • 好吧,我想在预定义的时间间隔截取屏幕截图以进行测试。这个想法是人们可以启动我的应用程序并设置一个间隔。然后启动测试应用程序,我的应用程序会在他们测试另一个应用程序时截取屏幕截图。

标签: ios ios4 screenshot


【解决方案1】:

在运行原生操作系统时,iOS 应用安全沙盒将阻止您的应用访问任何其他应用的视图内容。

【讨论】:

  • 是的,我也是这么想的。我将尝试越狱路线,因为我们只是在开发这个测试应用程序供内部使用而不是出售。只需要等到 5.0.1 获得不受限制的越狱...
  • 为什么不在您的应用程序的测试目标中包含执行此操作的 sdk?
【解决方案2】:

出于安全原因,您将无法这样做。

我希望

【讨论】:

    【解决方案3】:

    从后台应用程序seems to be possible 录制屏幕,但必须越狱您的设备。如果您确实需要此功能进行测试,您可能会发现越狱是值得的,但肯定不是您可以将其包含在您计划通过 App Store 销售的应用中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-26
      相关资源
      最近更新 更多