zoukankan      html  css  js  c++  java
  • Android来电、去电监听

    Android手机中添加手机来电的状态,使用PhoneStateListener来监听。

    TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(TELEPHONY_SERVICE);
    // 开始监听
    PhoneStateListener phoneListener = new MyPhoneStateListener();
    telephonyManager.listen(phoneListener, PhoneStateListener.LISTEN_CALL_STATE);
    
    // 取消监听
    telephonyManager.listen(phoneListener, PhoneStateListener.LISTEN_NONE);

    上面的MyPhoneStateListener是一个内部类,继承PhoneStateListener。

    class EncryptPhoneStateListener extends PhoneStateListener {
    
    	EncryptPhoneStateListener() {
    		telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
    	}
    
    	public void onCallStateChanged(int state, String incomingNumber) {
    		switch (state) {
    			case TelephonyManager.CALL_STATE_OFFHOOK:// 拨打电话或者接听电话时
    				McLog.i("state = CALL_STATE_OFFHOOK");
    				break;
    			case TelephonyManager.CALL_STATE_RINGING:// 电话进来时
    				McLog.i("state = CALL_STATE_RINGING");
    				break;
    			case TelephonyManager.CALL_STATE_IDLE:// 挂起电话时候,或者没有任何反映
    				McLog.i("state = CALL_STATE_IDLE");
    				break;
    			default:
    				break;
    		}
    	}
    }

    onCallStateChanged就是一个回调方法,incomingNumber就是来电的号码。


    以上方法只适合监听来电,不适合去电,如要监听去电,需要在上面方法中添加额外的东西。

    android.intent.action.NEW_OUTGOING_CALL需要定义一个广播接收器,接受的动作是android.intent.action.NEW_OUTGOING_CALL。

    public class MainReceiver extends BroadcastReceiver {
    
    	public void onReceive(Context context, Intent intent) {
    
    		String action = intent.getAction();
    
    		if (Intent.ACTION_NEW_OUTGOING_CALL.equals(action)) { // 去电
    
    			String number = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
    		}
    	}
    }

    在intent中就传递了号码,同时结合上面的电话状态,判断去电什么时候接通和挂断。


  • 相关阅读:
    BZOJ2095 [Poi2010]Bridges
    BZOJ3307 雨天的尾巴
    【CSP2020】 T3 动物园
    【CSP2020】 T1儒略日
    洛谷P3455 [POI2007]ZAP-Queries
    【黑科技学习】光速幂
    XJTUOJ #1023 JM的祖传零钱箱
    XJTUOJ #1168 zxh的后宫管理系统
    XJYUOJ #1053 nocriz与队列计算机
    XJTUOJ #1017 JM的完美集合
  • 原文地址:https://www.cnblogs.com/liushuibufu/p/3253604.html
Copyright © 2011-2022 走看看