如何获得呼叫结束/挂起事件?

时间:2014-04-10 11:25:51

标签: android service

我使用过TelephonyManager.CALL_STATE_OFFHOOK但不幸的是,每当我触摸呼叫按钮时,即在实际呼叫之前,它都会被呼叫。

我的代码:

public void onReceive(Context context, Intent intent) {
        this.context = context;
        listener = new CallStateListener();

        if(intent.getAction().equals("android.intent.action.NEW_OUTGOING_CALL")){
            Log.e("Aditya", "Broadcast listner");
            //Currently no use
        }
        TelephonyManager tm = (TelephonyManager) context.getSystemService(context.TELEPHONY_SERVICE);
        tm.listen(listener,PhoneStateListener.LISTEN_CALL_STATE);
    }

public class CallStateListener extends PhoneStateListener {
        int lastState = TelephonyManager.CALL_STATE_IDLE;
        @Override
        public void onCallStateChanged(int state, String incomingNumber) {
            switch (state) {
            case TelephonyManager.CALL_STATE_RINGING:
                // called when someone is ringing to this phone
                Toast.makeText(context,"Pioneer Contacts+ Updated",Toast.LENGTH_LONG).show();
                Log.e("Aditya", "ringing");
                break;

            case TelephonyManager.CALL_STATE_OFFHOOK:
                Toast.makeText(context,"Pioneer Contacts+ Updated",Toast.LENGTH_LONG).show();
                Log.e("Aditya", "offhook");
                break;
            }
        }
    }

在呼叫连接之前,会打印日志Log.e("Aditya", "offhook");。我希望在通话断开后显示它。

0 个答案:

没有答案