如果用户正在通话,我的应用程序的某些部分会更好地突出显示。
是否有电话要检查我们是否在打电话?不幸的是,出于显而易见的原因,“调用”在API文档中检查是一个可怕的词。
答案 0 :(得分:5)
查看[[UIScreen mainScreen] bounds]
和[[UIScreen mainScreen] applicationFrame]
之间的大小差异。如果diff是20像素并且您没有隐藏状态栏,那么用户可能不在通话中。如果差异为40像素,则您的用户可能正在通话,因为呼叫期间出现的发光绿色状态栏大约是正常状态栏的两倍。
我之前没有这样做,所以YMMV。祝你好运,让我知道它是否有效!
答案 1 :(得分:2)
当呼叫进入时,应用程序不会退出,它会转换为非活动状态。应在UIApplicationDelegate上调用以下方法:
- (void)applicationWillResignActive:(UIApplication *)application
在其他情况下也会调用此方法,例如iPhone被锁定时,您无法确定是否是导致它的来电。
答案 2 :(得分:2)
CoreTelephony框架可以告诉你。
CTCallCenter currentCalls方法返回一组当前活动的蜂窝呼叫。
答案 3 :(得分:0)
当iPhone收到电话时,应用程序退出。您可以注册回调以优雅地处理此事件,请参阅:
通话结束后,您的应用程序将重新启动。
在通话期间似乎保留您的状态的应用程序写得很好:)
Arggh!我刚读了你的实际问题。
我找不到,也不知道有任何API可以访问手机应用程序。我唯一的建议是,Phone就像其他任何应用程序一样 - 它可以通过所有应用程序提供的http隧道发布信息。
我想知道你是否可以按下“我在电话上”按钮,用户可以按下以获得相同的结果?