iPhone 应用程序 "拒接" 来电?

5
我的一位客户告诉我,在使用我为他们开发的应用程序时,他们收到了来电,但iPhone上没有弹出警报。相反,打电话的人听到了一个消息,说用户的服务暂时不可用。
如果我们暂且不考虑打电话的人没有信号可以打电话,或者我的客户没有信号可以接听电话的可能性,是否有任何可能导致我的应用程序默默地拒绝了这个电话?我认为这是不可能的。我理解Apple文档告诉我,iPhone操作系统完全控制并且应该能够在需要时终止我的应用程序。
我是否忽略了任何角落案例?

我和很多其他人的应用程序都遇到了相同的问题。当手机连接缓慢的网络(不是3G)并且我的应用正在下载东西时,就会出现这种情况。当下载完成后,手机才能接收来电!这对我来说听起来像是一个非常严重的操作系统网络问题(iPhone操作系统3.1.3)。 - Panagiotis Korros
@Panagiotis 这个问题中的应用程序没有进行任何数据传输,而且客户端也无法复现。 - Shaggy Frog
4个回答

15

这个不能通过编程的方式实现。

但是,如果你正在EDGE网络上进行测试,Jeff Kelley的答案是正确的。


1
哈哈!我们都在加拿大,所以只要替换成Fido、Rogers、TELUS或Bell,这个说法仍然适用! :) - Shaggy Frog

7

他们正在使用EDGE网络吗?使用EDGE网络时,您不能接收电话。它们共用同一个无线电。


你有更多关于这个的信息吗?虽然这不是问题,因为我的应用程序不进行任何数据传输。 - Shaggy Frog
我曾经认为EDGE会给你的iPhone优先权,并且当有电话进来时,你的EDGE使用将被停止。我并不认为手机的实际响铃会使用EDGE,而是在通话建立后,EDGE带宽将被电话占用。 - mahboudz
我本来差点打赌你是错的,并准备给你投反对票。但是,你提供的链接中最后一句话简直太神了。你是绝对正确的,我简直不敢相信它是这样运作的。天哪。我想知道是否因此错过了任何业务?我对苹果和AT&T感到相当恼火。 - Matt Dawdy

3

你说得对。一个应用程序无法阻止来电。

你的应用程序唯一能做的就是在有电话进来时收到通知,就像你提供的链接所描述的那样。


2

我之前遇到过类似的问题,但在我深入研究前就“消失”了。

看起来是这样的:

  • 我的应用程序在一个非常紧密的循环中进行了一些重计算。
  • “来电”中断的上半部分已经处理完毕。
  • 下半部分被“调用得太晚”了。
  • 通话被挂断了。

苹果或任何其他开发者都没有证实这一点。 我使用的手机...稍作修改,所以可能完全是我们的错。

该循环已被删除,问题再未出现。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接