2009-05-26 10 views
3

私は、プログラムの起動時に自動的に電話をかけるプログラムを持っています。これはAppDelegateの "applicationDidFinishLaunching"メソッドで実装されています。通話後にアプリが再読み込みされたかどうかを確認するにはどうすればよいですか?

問題:通話が終了し、アプリが自動的に再び起動すると、そのループが再開され、電話が再び開始されます。

アプリがその呼び出しから返されたかどうかを確認するにはどうすればよいですか?あるいは、呼び出しが既に行われたかどうかを定義するプログラムの状態や変数をどうにか簡単に保存できますか?

iPhoneプログラミングを始めたばかりで、これが登場しました。

答えて

1

アプリケーションを電話で起動する前に、application NSUserDefaults databaseBOOLフラグを読んで、その呼び出しを開始するかどうかを尋ねます。 callWasMade

callWasMadeNOの初期デフォルトに設定されている場合は、その後YESにフラグを設定NSUserDefaultsにフラグの値を保存してから電話をトリガーします。

アプリケーションのその後の起動時に、callWasMadeYES)の値がNSUserDefaultsから読み込まれ、呼び出しがトリガーされません。

その時点で、次の呼び出しを許可するには、フラグの値をNOに戻すのが安全であるはずです。

+0

感謝を!私はすでにhasCalled-booleanを持っていましたが、明らかにそれはどこにも保存されていないので動作しませんでした。 NSUserDefaultsデータベースが私の問題の答えでした。 –

3

これはできません。すべての通話終了があなたをアプリに返すわけではないことがわかるまで、旗のアイデアは素晴らしいです。その一例は、一番上の電源ボタンを押して電話を切る場合です。

これらの場合、フラグは矛盾します(つまり、次の起動時に、アプリは実際にホーム画面から起動されたときにコールから復帰しているとみなします)。

要約すると、電話からの返品をすべて検出する方法はなく、私はApple開発者にこれについてサポートを依頼しました。

+0

はい、私はまた、フラグが矛盾する可能性があることに気付きました。しかし、これはまれな状況で、ユーザーが単にアプリケーションを終了してから再び開くと自動的に修正されます。私はちょうどこれと一緒に行きます。 –

0

この質問で説明するようにあなたは、呼び出しを行うのUIWebViewを使用することができます。

Return to app behavior after phone call different in native code than UIWebView

と使用コア電話を通話が終了かどうかを確認するために:

//before calling loadRequest: 
CTCallCenter *callCenter.callEventHandler=^(CTCall* call) { 

     if(call.callState == CTCallStateDialing) 
     { 
      //The call state, before connection is established, when the user initiates the call. 
      NSLog(@"Dialing"); 
     } 
     if(call.callState == CTCallStateIncoming) 
     { 
      //The call state, before connection is established, when a call is incoming but not yet answered by the user. 
      NSLog(@"Incoming Call"); 
     } 

     if(call.callState == CTCallStateConnected) 
     { 
      //The call state when the call is fully established for all parties involved. 
      NSLog(@"Call Connected"); 
     } 

     if(call.callState == CTCallStateDisconnected) 
     { 
      [self release]; 
      NSLog(@"Call Ended"); 

     } 

    }; 
関連する問題