Xcode|iOS10から新しく加わったCallkitを使って通話の状態を取得してみた

20161015_001あまのじゃくなHikaruappです。

誰もやらないであろう、Coretelepnonyの一部が非推奨になりCallkitとして生まれ変わった、そのCallkitを使って通話の状態を取得してみた。

swiftをやるやると言っておきながら、今回もObjective-Cです。

それでは、行きます

検証環境

Mac OS X 10.11.6
Xcode 8.0

Call kitで通話の状態を取得する

CoreTelephonyにも通話状態を取得する機能がありました。
これ結構癖があって、メインスレッド以外でnewしたり、通話中にnewするとリークする始末、誰も使っていなかったと思われ放置プレイ状態。
そんな状態からCallkitで完璧に生まれ変わりました。
嬉しい!

取得するステータスはガラリと変わった

Coretelephony

CoreTelephonyのステータスは4つ

非推奨なので、そうでしたか程度で・・・。

Callkit

Call kitのステータスは4つ

YES/NOで振り分けろ!て感じですね。

現在通話しているのは、着信か発信かは outgoingでわかったりします。
まぁ、面白いので色々と実験してみてください。

iOSのAPIは作り手の考えを読み解くと凄く使い易いです。

では、使ってみましょう

使い方は2種類

1.現在の状態を知る
2.通話の状態が変化した時の状態を知る

1.現在の状態を知る

2.通話の状態が変化した時、その状態を知る

delegateの設定をして、メインスレッドを指定してみました。

まとめ

APIのヘッダーを見ながらCallkitの使い方を調べていると、swiftを意識したAPIになっているように感じました。
世の中はswiftなんだな、とつくづく思いObjective-Cの記事でいいのか?
と、思いながら誰が使うんだ?と言う記事を書いている私はウキウキだったりもします。

サンプルコード

プロジェクトファイル – github

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

フォローする

スポンサーリンク