これはすでに何度も質問されていますが、答えはありませんが、誰かが最終的に問題を解決してくれることを願っています.
問題: Android 2.3 を実行しているルート化されていないデバイスを使用しています。次のサービスを作成する必要があります。
- 電話をかけます。
- 呼び出しに応答するまで待機します。
- 通話に応答した後、電話を切ります (タイムアウトあり)。
他の多くの人と同じように、私は #2 で立ち往生しています。以下は、これまでに提案されたソリューションの要約です。
- PhoneStateListener を使用する (最も一般的な): 機能しません。発信通話の場合、必要なものを検出できません。
- 次のような使用
com.android.internal.telephony.CallManager
とそのメソッドregisterForPreciseCallStateChanged
(たとえば、これ): は機能せず、その中に電話が登録されていないため、イベントは発生しません。 com.android.internal.telephony.PhoneFactory
インスタンスを取得するために使用しcom.android.internal.telephony.Phone
ます (これはすべての鍵です): 機能しません。ファクトリが初期化されていません。呼び出しで初期化しようとするとmakeDefaultPhones
、セキュリティ例外が発生します (ここのように)。- 発信着信音を検出する (リンク): 著者のDany Poplawecは、着信音を検出すると問題を解決できる可能性があると述べていますが、詳細を提供していないため、この手法を試すことができませんでした。
すべてがすでに試されているように見えますが、私を救うトリックがもう 1 つあるかもしれません :)