Не получить правильное значение при получении текущего номера телефона в 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);
}
};
Иногда он возвращает ноль или номер, который я звонил раньше. Есть ли другой метод для получения номера входящего / исходящего вызова текущего вызова?