【问题标题】:takepicture() vs UIGetScreenImage()takepicture() 与 UIGetScreenImage()
【发布时间】:2009-10-07 13:57:57
【问题描述】:

我正在尝试为我们的研究小组正在为 iPhone 开发的项目构建 QRCodeReader。经过大量研究,我发现了名为QuickMark 的程序。该程序会自动扫描二维码。它似乎做的是加载UIImagePicker 并从相机读取数据。我怀疑它正在使用UIGetScreenImage 并从相机中截取屏幕截图并对其进行解码。

现在我尝试使用 3.1 iPhone API 中的新 takepicture() 方法,但这似乎无法完成上述操作,即每秒左右拍照,静默。现在我听说UIGetScreenImage 可能是不合法的,如果他们使用你的应用程序,Apple 会转身拒绝访问。所以,我的问题是:

a) Quickmark(或任何其他允许的应用程序)是否使用 UIGetScreenImage(),如果是,是否合法,

b) takepicture() 方法可以做同样的事情吗?

【问题讨论】:

    标签: iphone uiimagepickercontroller cgimage


    【解决方案1】:

    “合法”是一个非常模糊的术语,但我认为您的意思是应用程序会被拒绝。有很多可能导致应用程序被拒绝的事情,但最灰色的区域之一是使用私有标头。谷歌在他们的搜索应用程序中侥幸逃脱,但在人们写下措辞非常严厉的博客文章的几个月里,互联网在愤怒中燃烧了几个月。归根结底,你可以做任何你想做的事,但如果你被抓住了,祝你好运。

    API 几乎按照它们的工作方式工作,应该足够简单地循环调用 takepictureNSTimer 只是要小心你的操作方式,对我来说似乎是一个繁重的过程。

    【讨论】:

    • TakePicture 调用并不是真正的静音,对这个应用程序没有多大用处;如果它可以静音而不移动到移动/缩放屏幕(等),那就太好了。我担心的是 QuickMark 似乎已经摆脱了它,因为我看不到其他解决方法。
    • 是的,法律上我的意思是“苹果的严酷之神批准在应用商店使用”;)
    • Apple 已经开始允许使用这个 API,官方已经发布了支持格式的公告。查看 uStream 应用程序。
    • 是的,它是官方的 - 您现在可以使用 UIGetScreenImage()。我猜苹果在允许 ustream 之后感到羞耻。 devforums.apple.com/message/149553#149553帕特
    • 现在它再次被官方拒绝:tuaw.com/2010/07/21/devsugar-rip-uigetscreenimage 注意:这取代了旧评论,说有 3.x 替代品。 Apple 的 alternative 明确声明它不适用于视频内容。
    【解决方案2】:

    RedLaser 肯定在使用 UIGetScreenImage()。快速浏览一下他们库中的符号即可确认。

    【讨论】:

      【解决方案3】:

      您的应用会因为使用 UIGetScreenImage() 而被拒绝。

      【讨论】:

      • 那不可能是正确的,因为我几乎 100% 确定 RedLaser 和 Quickmark 使用这种技术。真的,我需要从这两家公司中的任何一家那里得到证实,但似乎没有人能够做到。
      【解决方案4】:

      我的应用(今天)因使用此调用而被拒绝。 :( 我在输入时正在寻找新的解决方案...

      【讨论】:

      • 我注意到 RedLaser 也使用了类似的技术,但他们的应用程序已被允许。这必须有一个标准的技术
      • 在发布时,他们几乎允许任何东西进入,现在我认为他们已经配备了人员,并且正在加紧执行规则。规则一直都有,我只是觉得现在他们更加关注了
      • 正如上面和下面提到的,Redlaser 和 Quickmark 都想出了如何做到这一点,因此必须有合法的方式来捕获屏幕。调用 takePicture 不起作用,因为每次拍摄照片时它都会播放声音,并且(我相信)调用 didFinishPickingMediaWithInfo 与图片(这似乎很难在试图处理图像的线程中管理)。 UIGetScreenImage 成功了……现在呢?!
      • 我已经与 Apple App Review 人员和 DTS 进行了交谈。他们不允许使用 UIGetScreenImage 的任何应用程序,并已注意到似乎使用它的应用程序。他们需要公平竞争,要么删除使用它的应用程序,要么允许我们其他人享有 Quickmark、Redlaser、QRapp、i-nigma 和其他人所允许的相同特权。
      【解决方案5】:

      http://www.redlaser.com/SDK.aspx

      这里他们暗示已经使用了这个功能,参考这个页面。

      【讨论】:

        【解决方案6】:

        现在应该更新一些东西吗?

        UIGetScreenImage 现在应该是合法的了。

        【讨论】:

          【解决方案7】:

          有一种方法可以在不使用 UIImagePickerController 或 UIGetScreenImage() 的情况下从摄像头捕获视频数据。
          从 iOS 4.0 开始在 AVFoundation 框架中可用。 see here how.

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2012-07-11
            • 2011-08-05
            • 1970-01-01
            • 1970-01-01
            • 2020-10-11
            • 1970-01-01
            • 2013-01-31
            相关资源
            最近更新 更多