6

如果用户正在打电话,我的应用程序的某些部分会更好地突出显示给用户。

有电话询问我们是否在通话吗?不幸的是,由于显而易见的原因,在 API 文档中检查“调用”是一个可怕的词。

4

4 回答 4

5

看看[[UIScreen mainScreen] bounds]和之间的大小差异[[UIScreen mainScreen] applicationFrame]。如果差异为 20 像素并且您没有隐藏状态栏,则用户可能不在通话中。如果差异为 40 像素,则您的用户可能正在通话,因为在通话期间出现的绿色发光状态栏大约是正常状态栏的两倍。

我以前没有这样做过,所以 YMMV。祝你好运,让我知道它是否有效!

于 2009-10-08T01:58:20.160 回答
2

CoreTelephony 框架可以告诉你。

CTCallCenter currentCalls 方法返回一组当前活动的蜂窝电话。

于 2011-10-19T21:38:51.660 回答
2

当有来电时应用程序不会退出,它会转换到非活动状态。应在UIApplicationDelegate上调用以下方法:

- (void)applicationWillResignActive:(UIApplication *)application

在其他情况下也会调用此方法,例如当 iPhone 被锁定时,您无法确定是否是来电引起的。

于 2009-10-07T23:52:30.587 回答
0

当 iPhone 接到电话时,应用程序退出。您可以注册一个回调来优雅地处理此事件,请参阅:

http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIApplicationDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intfm/UIApplicationDelegate/applicationWillTerminate

通话结束后,您的应用程序将重新启动。

在通话期间似乎保留您的状态的应用程序写得很好:)


啊!我刚刚阅读了您的实际问题。

我找不到,也不知道有任何 API 可以访问电话应用程序。我唯一的建议是,Phone 是一个与其他应用程序一样的应用程序——它可以通过所有应用程序提供的 http 隧道发布信息。

我想知道你是否可以让用户按下“我正在打电话”按钮来达到相同的效果?

于 2009-10-07T23:38:34.527 回答