API 21以降、特にTelecomManagerのメンバーを追加し、InCallServiceを追加することで、GoogleはAPI21以降、一般にandroid.telecomに機能を追加しています。この最後の1つは、システム以外のサードパーティのアプリケーションがシステムコールアプリのコール画面の機能を提供したり置き換えたりできるようになっていることです。EXTRA_STATE_OFFHOOK
またはEXTRA_STATE_RINGING
ブロードキャスト(つまり、着信と発信電話)。android.telecomとInCallServiceを使用して着信に応答する
現在のところ、この画面ではルート制限されたMODIFY_PHONE_STATE
の許可と、リフレクションでもアクセスできないセキュリティ保護された多くのAOSPコードによって、きめ細かい情報の呼び出しおよびアクティブなコールと関連付けられたシステムコールバックを完全に制御できます。特に、製造元のROMの味の中で、ランチャー、連絡先、カメラとともに、最も変更されたコードの1つです。
これはどのようにあなたが実際にサードパーティのInCallServiceを開発するんすべての非常にきれいけど...
のですか?
すなわち:あなたがについて通知を受けるにはどうすればよい
- 、およびGSMのインスタンスを取得する方法1は、このクラスのコールバックのライフサイクルとは何か、これらの呼び出し
- に答えるん
- 呼び出し
- Googleは私はしません
を発見していない。このため、実際のチュートリアルを提供していますskは一度にこれらすべての答えを返しますが、いずれかの答えはおそらく他の質問と関連しています。これは広範囲ではあるが、本質的には、AOSPコード以外のウェブ上での例はなく、そのコードはルート特権の前提に基づいているため、サードパーティのアプリケーション開発では使用できなくなる目的。
あなたの質問#1のために、 'android.intent.action.PHONE_STATE'放送は動作しませんか? –
@SharpEdgeあなたは「呼び出し」を通知されますが、あなたはどのandroid.telecom.Callかわかりません - https://developer.android.com/reference/android/telecom/Call.htmlちょうどコール#答え(int videoState)を取得し、2を取得します。 – leRobot
そこに多くの情報があるようには思われません - この質問のコメントが役立つかもしれません:http://stackoverflow.com/q/34861910/334402 。明確でない場合に注意するべきことの1つは、このAPIはInCallUI、つまり呼び出しを制御するユーザーインターフェイスを置き換えることです。 – Mick