还记得之前对 Google 发布的 iPhone 语音搜索应用的描述吗?
“把手机放到耳边,iPhone 的附近传感器(Proximity sensor)能够识别出此动作,并自动切换到语音模式,然后向 Google 提问…… ”
这是个非常聪明的设计,要切换到语音模式,必须要有两个动作:一、移动iPhone ;二、触发附近感应器。缺少任何一者,语音模式都不会被启动。
但是,这里有一个秘密:iPhone SDK 中并没有公开附近感应器的 API(应用程序接口)。
你可能会想到,App Store 里的很多游戏(比如 Super Monkey Ball)都使用了可以感应动作和方向的加速计(Accelerometer)呀,但事实这两者是完全不同的。附近传感器(Proximity sensor)唯一能做的就是“启用或关闭”,当它启用时 iPhone 的屏幕就会关闭变暗,不能接受触控操作(比如当你打电话的时候)。默认状态下,附近传感器是关闭的,绝大多数 App Store 的应用都用不到它。
既然苹果没有公开附近传感器的 API ,Google 是如何调用这一功能的呢?有怀疑者称,Google 将附近传感器链接到 Google Mobile App 内 Google 私有的一个动态架构。但本周二,Google 发言人对怀疑者的说法予以了否认,并向 CNet 承认:Google Mobile App 的语音搜索功能为了使用 iPhone 的附近传感器使用了未公开的 API (比怀疑者说的情况要好一点)。
但这违反了 iPhone SDK 开发者协议条款,也不是普通开发者敢做的。苹果要求所有的 App Store 应用都必须采用苹果公布的应用程序接口。iPhone SDK 协议 3.3.2 条款写道:
“除采用苹果公布的应用程序接口和内置解释程序翻译和运行的代码以外,其他非独立安装、或以任何形式启用其他执行代码,包括无限制使用插件程序、调用其他架构或应用程序接口的代码都将无法被翻译和下载。”
Adobe Flash 和 Java 也都是因为违反了这一条款而无法进入 App Store 的。使用未公开的 API 可能带来的问题是:它可能会让以后苹果的软件更新无法正常使用。不过仍有一些开发者为了更酷的功能,不惜以身试险。 App Store 一般都会予以拒绝,但奇怪的是,苹果居然批准了 Google Mobile App 。
这是否意味著苹果对 Google 特别开绿灯?可能性并不大。因为这可能会激起其他开发者的抗议,并把 Google 当作前例也要求获得同等的权利。如果苹果现在不能一视同仁,它能否当好 App Store 的看门人将是个疑问:会有洪水般的应用要求破坏 App Store 的规矩。
更可能的情况是:苹果在批准 Google Mobile App 时并没有意识到它使用未公开的 API 。如果苹果要坚决执行 iPhone SDK 开发者协议条款,Google 很可能会被强制要求重新编写语音搜索应用的代码 —— 而用户们可能要先手动点击才能启用语音搜索模式了。
本周,苹果公司的很多发言人都正在享受感恩节的假期,所以没有立即回复 CNet 发出的评论邀请。(各位,感恩节快乐!)
消息来自:[CNet & Daring Fireball ]