いくつかのアイデア:
1) システム全体のイベント生成を見てください。必要なボタン (「スピーカー」または「応答」ボタン) をプログラムでクリックできます。これに関するいくつかの質問があります:
iOS でのシステム全体のタッチ イベントのシミュレート
デバイスを脱獄せずに iOS でシステム全体のタッチ イベントをシミュレートする
タッチ イベントを iPhone OS に送信する方法は?
シミュレーションの鍵となる GSEvent についてもっとググることに興味があるかもしれません。
2) シミュレーター フォルダー (/Application/XCode/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk) に移動します。
そして、このようなことをします
grep -R "スピーカー" ./
アイデアは、バイナリでスピーカーを検索することです(対ヘッダーファイル)。プライベート API のほとんどは、ヘッダー ファイルに文書化されていません (これがプライベートである理由の一部です)。
いくつかの興味深いヒットは次のとおりだと思います。
- TelephoneUIプライベート フレームワーク
- AudioToolboxフレームワーク (ところで、.h ファイルには次のものもあります: kAudioSessionOverrrideAudioRoute_Speaker)
- AVFoundationフレームワーク
- IOKit*フレームワーク (.h ファイルに kIOAudioOutputPortSubTypeExternalSpeaker があります)
等々。
次のステップは、それらを分解することです。これらのフレームワークのほとんどには、.h ファイルで定義されていない興味深い API がたくさんあります。それらをブラウジングして、この件に関して興味深いものがあるかどうかを確認すると便利です。
逆アセンブルに煩わされたくない場合は、ここから抽出されたヘッダーを取得できます:
https://github.com/nst/iOS-Runtime-Headers/tree/master/PrivateFrameworks