2

私のアプリでは、発信通話が受け入れられているか、切断されているか、呼び出し中かを検出する必要があります。私はこれらの投稿を通過しました:

しかし、これらの投稿のどれも適切な答えを与えていません. Android internal class を使用しましたcom.android.internal.telephony.CallManagerが、電話の状態がアイドル状態かどうかしか取得できません。

4

1 に答える 1

0

ここで説明されているように、正式にはそれを行うことはできませんが、私が使用している回避策があります: 最後のステータスを保存し、それを使用して、発信通話がオフフックからアイドル状態に移行したときを識別することができます。電話を切るか、受け入れます。したがって、それがどれであるかを知るために、呼び出しがまだ有効かどうかを確認し、有効な場合は、呼び出しが応答されたことを確認してコードを実行できます。

例えば:

// 0 --> 1 || 0 --> 2
if (   laststate == TelephonyManager.CALL_STATE_IDLE
    && (   state == TelephonyManager.CALL_STATE_RINGING
        || state == TelephonyManager.CALL_STATE_OFFHOOK))
{
}
else if (state == TelephonyManager.CALL_STATE_IDLE)
{
}

if (   laststate == TelephonyManager.CALL_STATE_OFFHOOK
    && state == TelephonyManager.CALL_STATE_IDLE)
{
}

laststate = state;
于 2013-09-21T10:17:53.327 に答える