代码之家  ›  专栏  ›  技术社区  ›  Mihai Damian

检测来电

  •  3
  • Mihai Damian  · 技术社区  · 15 年前

    我需要确定来电何时到达。我知道,如果用户接听电话,将调用applicationwillterminate,而当弹出确认消息显示呼叫时,applicationwillresignative将被调用,但是:
    -当应用程序按用户请求退出或电池即将耗尽时,也会调用applicationwillterminate。
    -当显示uiviewAlert时,也会调用applicationwillresignative。

    谢谢

    3 回复  |  直到 12 年前
        1
  •  5
  •   Vladimir    15 年前

    简而言之-不,您无法确定应用程序中是否有来电或其他类型的中断。

        2
  •  4
  •   Saurabh    13 年前

    我发现了这篇关于处理来电、终止恢复和保持状态的文章。

    它可能会帮助你……

    http://www.tomwhitson.co.uk/blog/2009/04/handling-interuptions-to-your-app/

    (void)applicationWillResignActive:(UIApplication *)application{
            //our app is going to loose focus since thier is an incoming call
            [self pauseGame];
    }
    
    (void)applicationDidBecomeActive:(UIApplication *)application{
            //the user declined the call and is returning to our app
            [self resumeGame];
    }
    
    (void)applicationWillTerminate:(UIApplication*)application{
            //the user answered the call (or quit the app) so save the
            //game as we are shutting down
            [self saveGameState];
    }
    
        3
  •  3
  •   Paul N    12 年前

    我知道这个问题很古老,但是如果有人像我一样回答这个问题,会有一个音频会话代表来检测音频是否会被中断(主要是通过电话)。

    对于任何播放音频的应用程序,此方法都适用于检测传入的iPhone呼叫。

    以下是苹果文档的链接: Handling Audio Interruptions