简体   繁体   English

如何在来电和去电过程中获取电话号码?

[英]How to get the phone number during an incoming and outgoing call?

I use a class that extends BroadcastReceiver.我使用一个扩展 BroadcastReceiver 的类。 how can I get the phone number during an incoming or outgoing call?如何在来电或去电期间获取电话号码?

This is my department:这是我的部门:

public class MyCallReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context , Intent intent) {
     
        if (intent.getStringExtra( TelephonyManager.EXTRA_STATE ).equals( TelephonyManager.EXTRA_STATE_OFFHOOK )) {
          //Call started

        } else if (intent.getStringExtra( TelephonyManager.EXTRA_STATE ).equals( TelephonyManager.EXTRA_STATE_IDLE )) {
           //Call ended

        } else if (intent.getStringExtra( TelephonyManager.EXTRA_STATE ).equals( TelephonyManager.EXTRA_STATE_RINGING )) {
             //Incoming call
            }
    } }

you can get it this way.你可以通过这种方式得到它。

public class CallRecevier extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        try {
            TelephonyManager telephony = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
            telephony.listen(new PhoneStateListener() {
                @Override
                public void onCallStateChanged(int state, String phoneNumber) {
                    super.onCallStateChanged(state, phoneNumber);
                    if (state == 1 || state == 2) {
                        if (phoneNumber != null && !phoneNumber.equals("")) {
                           Tİmber.e("Call Number: %s",phoneNumber);
                        }
                    }
                }
            }, PhoneStateListener.LISTEN_CALL_STATE);
        } catch (Exception e) {
            Timber.e("Error: %s", e.getLocalizedMessage());
        }
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM