2

この質問はすでにかなり前から聞かれていることを私は知っています。そして、stackoverflow ですべてのトピックを読みました。しかし、私の問題に対する満足のいく答えはありません。

iOS 5 を実行している iPhone をプログラムでミュートしたいと考えています。多くの人は、公開フレームワークでは不可能だと言うでしょう。私はそれを知っています。コーディングを計画しているアプリは、個人使用のみを目的としています。AppStore で販売するつもりはありません (まだ?)。

私の調査の結果、iPhone をプログラムでミュートする方法はいくつかあるという結論に達しました。

  1. プライベート フレームワークを使用する
  2. サウンドを再生しているフック関数またはメソッド
  3. デフォルトのサウンドを置き換えます (着信音、MailSent、iMessage、usw など)。

上記の方法に対するいくつかの考え:

  1. プライベート フレームワークのすべてのヘッダーを (Xcode インストールで) クラス ダンプしましたが、(関数名で) 必要な動作を示す関数が見つかりませんでした
  2. 可能だと思いますが、引っ掛ける機能がわかりません。したがって、これを機能させるにはかなりの労力が必要になります (そして、私はこれを実行したくないと思います)。
  3. よく考えてみると、これは良い解決策ではないかもしれません。もしかしたら、音を変えるかもしれません。しかし、その後、電話はまったくミュートされません (ゲーム、YouTube など)。

メソッドをAVSystemController使用してチャンスを与えましたが、それらは私の電話をミュートしませんが、呼び出し音の最小音量を0.06(または何か)に設定します。changeActiveCategoryVolumeBysetVolumeTo

iPhone を完全にミュートする方法が必要です。RingToggle (ジェイルブレイクされたアプリ) は非常にうまく機能しています。

誰もそれを行う方法を知っていますか?

4

1 に答える 1

2

プライベート フレームワークを使用していても、サンドボックス アプリから電話をミュートすることはできないと思います。

RingToggle がおそらく行うことは、スプリングボードにフックし、スプリングボードのメソッドを使用して電話をミュートすることです。おそらく MobileSubstrate 拡張機能を使用しています。

于 2012-02-14T21:10:10.833 に答える