Не получить правильное значение при получении текущего номера телефона в Android

Я использую следующий широковещательный приемник для получения номера исходящего телефона.

@Override
public void onReceive(Context context, Intent intent) {
    mContext = context;
    mIntent = intent;
    TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
    int events = PhoneStateListener.LISTEN_CALL_STATE;
    tm.listen(phoneStateListener, events);
}

private final PhoneStateListener phoneStateListener = new PhoneStateListener() {
    @Override
    public void onCallStateChanged(int state, String incomingNumber) {



        switch (state) {
        case TelephonyManager.CALL_STATE_IDLE:

            break;

        case TelephonyManager.CALL_STATE_OFFHOOK:


                dialingNumber = mIntent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
                Toast.makeText(mContext, "Local Call Number- " + dialingNumber,Toast.LENGTH_SHORT).show();


                break;
            }
                return;
        }



        Log.i(">>>Broadcast", "onCallStateChanged " + callState);
        super.onCallStateChanged(state, incomingNumber);
    }
};

Иногда он возвращает ноль или номер, который я звонил раньше. Есть ли другой метод для получения номера входящего / исходящего вызова текущего вызова?

Ответы на вопрос(1)

Ваш ответ на вопрос