2

facetimeで動作するアプリを開発しています。残念ながら、Facetime のフレームワークや API はまだ利用できないので、私は自分が持っているものを使って作業しています。ご存知のように、Facetime 通話が発信されると、ネイティブの電話アプリがその役割を果たします。唯一の問題は、通話が終了してもそこにとどまることです。

私がやりたいことは、通話が終了したら、ローカル通知をユーザーに送信して、アプリに戻りたいかどうかを尋ねることです。これはすべて、CoreTelephony フレームワークの助けを借りて行います。私はそれが進行中のフレームワークであり、まだプライベートなものであることを知っていますが、

Apple に拒否されることなく、そのフレームワークをアプリで使用して公開できますか?

そのフレームワークは Facetime でも機能しますか? 私はそれを働かせることができません。 これが私がしたことです:

  • 最初に appDelegate ヘッダー ファイルにフレームワークをインポートしました
  • その後...

.

- (void)applicationDidEnterBackground:(UIApplication *)application{
 NSLog(@"applicationDidEnterBackground");


CTCallCenter *callCenter = [[CTCallCenter alloc] init];
 callCenter.callEventHandler=^(CTCall* call){

  if (call.callState == CTCallStateDialing){ 
   NSLog(@"Call Dialing");
  }
  if (call.callState == CTCallStateConnected){ 
   NSLog(@"Call Connected");
  }
  if (call.callState == CTCallStateDisconnected){ 
   NSLog(@"Call Disconnected");
  }
 };
}

何も追跡されません。何か案は?

更新:ちょっとしたテストを実行したところ、コードが実際の電話で完全に機能することがわかりました。CTCallCenter ブロックは、applicationDidBecomeActive メソッドに配置する必要があります。また、(Apple のドキュメントにあるように) フレームワークは、アプリ内にいるときにのみこれらの通知をディスパッチすることにも気付きました。サスペンド モードでは、いかなる種類の通知も受け取りません。

4

1 に答える 1

0

iOS 10 には新しい CallKit SDK があり、VoIP 資格がなくても VoIP 通話 (FaceTime を含む) を検出できます。これは、オブザーバー部分の使用方法を説明する素晴らしい答えです。

于 2017-11-28T07:54:33.880 に答える