在android程序中处理来电

我想在android平台上处理来电。我想设定一个时间期限, 如果手机接收到电话时,就会自动的发给来电用户一个信息。

如何设置?

2个回答

你需要在 Activity 或者 Service中申明 PhoneStateListener:

PhoneStateListener phoneStateListener = new PhoneStateListener() {
    @Override
    public void onCallStateChanged(int state, String incomingNumber) {
        if (state == TelephonyManager.CALL_STATE_RINGING) {
            ....
        } else if(state == TelephonyManager.CALL_STATE_IDLE) {
            ....
        } else if(state == TelephonyManager.CALL_STATE_OFFHOOK) {
            ....
        }
        super.onCallStateChanged(state, incomingNumber);
    }
};

再在AndroidManifest.xml 中添加下面的权限:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

继承你的类到 PhoneStateListener,并且重写 onCallStateChanged 方法:

  class myCallListener extends PhoneStateListener{
                @Override
            public void onCallStateChanged(int state, String incomingNumber) {
                // TODO Auto-generated method stub
                switch (state) {
                case TelephonyManager.CALL_STATE_RINGING:
                        // your logic here
                    break;
                    default:
                    break;
                }
                    super.onCallStateChanged(state, incomingNumber);
                }
        }
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问