2

私はAndroidフレームワークで開発していますが、

呼び出し先が発信呼び出しを受信したとき、および呼び出しが終了したときに (両側のいずれかから) イベントを発生させたい

4

1 に答える 1

0

発信者が通話を受信したかどうかを知るには、リスナーを作成する必要があります。

class PhoneInfo extends BroadcastReceiver {
/**
 * Getting the System Telephony Service and registering a listener for Voice Call state
 */
@Override
public void onReceive(Context context, Intent intent) {
    IncomingCallListener phoneListener = new IncomingCallListener();
    TelephonyManager telephony = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
    telephony.listen(phoneListener, PhoneStateListener.LISTEN_CALL_STATE);
}

class IncomingCallListener extends PhoneStateListener {

    public void onCallStateChanged(int state, String incomingNumber) {
        Log.i(logcat,"CALL_STATE changed " + callflag);

        switch (state) {
        case TelephonyManager.CALL_STATE_IDLE:
            Log.i(logcat,"CALL_STATE_IDLE");
                                    //This is where call ends.
            break;

        case TelephonyManager.CALL_STATE_OFFHOOK:
                                    //This is where we know call is established
            break;

        case TelephonyManager.CALL_STATE_RINGING:
            Log.i(logcat,"CALL_STATE_RINGING");
            break;
        }


    }

}

これをアクティビティに次のように登録します。 phoneInfo = new PhoneInfo(this); registerReceiver(phoneInfo, new IntentFilter(Intent.ACTION_NEW_OUTGOING_CALL));

ログを使用すると、通話がダイヤルまたは受信されたときに状態がどのように変化するかを確認できます。

于 2012-10-16T11:07:03.260 に答える