简体   繁体   English

在Android中处理来电

[英]Handling incoming calls in Android

I want to handle incoming call in Android. 我想处理Android中的来电。
Actually I want to set a time duration in which if my cell phone receive any call then automatically a message send to each of them. 实际上,我想设置一个持续时间,如果我的手机接到任何电话,则会自动向每一个发送一条消息。

Any ideas? 有任何想法吗?

Just extend your class to PhoneStateListener and override onCallStateChanged method. 只需将您的类扩展到PhoneStateListener并覆盖onCallStateChanged方法。 Sample code: 样例代码:

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);

        }
    }

You need to declare PhoneStateListener in your Activity or Service : 您需要在ActivityService声明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);
    }
};

And add following permission to AndroidManifest.xml : 并向AndroidManifest.xml添加以下权限:

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

Hope this helps. 希望这可以帮助。

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

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