1

特定の連絡先から通話中かどうかを確認する必要があるアプリケーションがあります。

ACTION_PHONE_STATE_CHANGED ブロードキャスト インテントを使用して CALL_STATE_RINGING で発信者の電話番号を取得できることはわかっていますが、TelephonyManager.getCallState 関数を使用して、アクティブな通話 (CALL_STATE_RINGING または CALL_STATE_OFFHOOK) がある場合は、発信者の電話番号を取得します。

何か案は ?

4

1 に答える 1

2

したがって、これをさらに調査した後、簡単な方法はないと確信しています...

私が最終的に行ったのは、ACTION_PHONE_STATE_CHANGED および NEW_OUTGOING_CALL ブロードキャスト インテントをリッスンし、それらを受信したら、電話番号を含むエクストラを含むスティッキー ブロードキャスト (私が作成したもの) を登録し、それが着信か発信かを示すことでした。CALL_STATE_IDLE で ACTION_PHONE_STATE_CHANGED を取得すると、そのスティッキー インテントを削除します)。

アクティブな通話があるかどうかを知る必要がある場合は、そのスティッキー ブロードキャスト (null レシーバーを持つ registerReciever) を取得しようとします。利用可能なスティッキーがある場合は、電話番号と着信/発信通話の表示を取得できます。

ACTION_PHONE_STATE_CHANGED はアクティブな通話中に受信され、どちらがアクティブかを判断できないため、まだ改善できることの 1 つは待機中の通話の処理です (関連する質問を参照) 。

于 2011-05-19T04:05:35.660 に答える