0

通話が切断された後、バックグラウンドにあるアプリケーションをフォアグラウンドにしようとしています。コードは次のとおりです。

if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"tel:0123456789"]]){
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:0123456789"]];
} else {
  // Could not make call
}

CTCallCenter *c=[[CTCallCenter alloc] init];
c.callEventHandler=^(CTCall* call){
  if(call.callState == CTCallStateDisconnected) {
    // code to make app return to the foreground
    // I have tried calling applicationWillEnterForeground, but it didn't work
  }
}

助けてください

4

2 に答える 2

1

簡単な呼び出しではできないと確信しています。URL ハンドラー my app:// を登録し、完了ブロックで openURL を使用するとうまくいくかもしれませんが、それはかなりハッキリしているようです。

于 2010-08-01T16:53:36.237 に答える
1

Apple は「フォアグラウンドに来る」ことを許可しませんが、代わりにローカル通知を使用できます。

だからあなたがしたいことのためにあなたはする必要があります:

  1. ダイヤル URL を開始すると、アプリがバックグラウンドにプッシュされるため、「applicationDidEnterBackground:」が表示されます。バックグラウンド タスクを開始する必要があります。開始しないと、通話状態が変更されません。

  2. 通話状態の変更を取得したら、ローカル通知を作成します。ユーザーがアプリケーションを「表示」したい場合、アプリケーションが前面に表示されます。

上記には 1 つの問題があります。通話が 10 分を超えると、バックグラウンド タスクが終了し、通話状態が変化しません。

于 2011-04-04T21:14:11.803 に答える