2 o casper ne O_Casper_ne 于 2013.03.29 11:09 提问

在android程序中处理来电

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

如何设置?

2个回答

curie_87
curie_87   2013.04.01 10:03
已采纳

你需要在 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" />
Baby_Bonnie
Baby_Bonnie   2013.03.29 13:16

继承你的类到 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
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!