1

現在の通話をスピーカー経由で音声を出力するように切り替える方法を見つけようとしています(電話アプリで「スピーカー」を押すように。理想的には、スピーカーで通話を受け入れたいのですが、1つのステップです。一度に!

プライベートフレームワークと非プライベートフレームワークの両方のさまざまなヘッダーを検索しましたが、スピーカーに切り替えるために呼び出す適切なメソッドが見つかりません。

もともと、CTCall.hに存在すると思っていましたが、(この点で)有用なものは何もありません。

適切な方法がどこにあるか知っている人はいますか?

どうもありがとう :)

4

1 に答える 1

2

いくつかのアイデア:

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

于 2013-02-22T22:30:22.347 に答える