Android: состояние телефона в приемнике вещателя - PullRequest
2 голосов
/ 18 июля 2011

Я использую широковещательный приемник для отслеживания изменения состояния телефона. Он отлично работает, когда состояние изменяется в первый раз (для State_OffHook), но не реагирует на завершение вызова. Это мой код:

String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);                     
            if (TelephonyManager.EXTRA_STATE_OFFHOOK.equals(state)) {working fine}
                else if (TelephonyManager.EXTRA_STATE_IDLE.equals(state)) {doesn't react}

1 Ответ

0 голосов
/ 18 июля 2011

Когда у вас нет звонка, вы находитесь в состоянии IDLE, а когда вы получаете звонок, он переходит в состояние OFFHOOK и когда ваш звонок заканчивается, он снова переходит в IDLE состояние

для получения дополнительной информации отослать это

Как узнать, звоню ли я на Android?

EDIT:

@Override
    public void onCallStateChanged(int state, String incomingNumber) {
        super.onCallStateChanged(state, incomingNumber);

        switch (state) {
            case TelephonyManager.CALL_STATE_IDLE:
                // Toast.makeText(context, "Idle", Toast.LENGTH_LONG).show();
                if(UDF.phoneState != TelephonyManager.CALL_STATE_IDLE) {
                    //Here you are came from offhook because value of UDF.phoneState != TelephonyManager.CALL_STATE_IDLE
                    //IDLE is calls many times so you have to keep track by a static variable like  UDF.phoneState
                } 
                break;
            case TelephonyManager.CALL_STATE_OFFHOOK:
                 //Toast.makeText(context, "Idle", Toast.LENGTH_LONG).show();
                break;
            case TelephonyManager.CALL_STATE_RINGING:
                 //Toast.makeText(context, "Idle", Toast.LENGTH_LONG).show();
                endCallIfBlocked(incomingNumber);
                break;

            default:
                break;
        }
        UDF.phoneState = state;
     }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...