Java 当对方接听电话并关闭电话时,采取措施

Java 当对方接听电话并关闭电话时,采取措施,java,android,call,Java,Android,Call,我使用此代码调用: Uri callUri = Uri.parse("tel://0000"); Intent callIntent = new Intent(Intent.ACTION_CALL,callUri); callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_NO_USER_ACTION); startActivity(callIntent); 我想在以下情况下做一些事情: 对方接听电话 对方

我使用此代码调用:

Uri callUri = Uri.parse("tel://0000");
Intent callIntent = new Intent(Intent.ACTION_CALL,callUri);
callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_NO_USER_ACTION);
startActivity(callIntent);
我想在以下情况下做一些事情:

  • 对方接听电话
  • 对方结束通话
  • 用户关闭呼叫
  • 用户在对方接听电话之前关闭电话
如何结束通话


提前感谢

您应该使用电话管理员来处理呼叫。看看下面的课程

private class PhoneCallListener extends PhoneStateListener {

        private boolean phoneInACall = false;

        @Override
        public void onCallStateChanged(int state, String incomingNumber) {

            if (TelephonyManager.CALL_STATE_RINGING == state) {
                // THE PHONE IS CURRENTLY RINGING!
            }

            if (TelephonyManager.CALL_STATE_OFFHOOK == state) {
                // THE PHONE IS ACTIVE, DIALING OR ON HOLD!
                phoneInACall = true;
            }
            if (TelephonyManager.CALL_STATE_IDLE == state) {
                // IDLE - NO ACTIVITY. IF PHONEINACALL WAS TRUE, IT MEANS THE CALL ENDED
                if (phoneInACall) {
                    // RESTART YOUR MAIN ACTIVITY BECAUSE A CALL ENDED!
                    phoneCalling = false;
                }

            }
        }
    }
您可以在onCreate方法中使用此类,方法是创建此PhoneStateListener的实例,并获取TelephonyManager的实例,以调用listen方法来侦听接收指定电话状态更改的通知

PhoneCallListener phoneCallListener = new PhoneCallListener();
TelephonyManager telManager = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
telManager.listen(phoneCallListener, PhoneStateListener.LISTEN_CALL_STATE);
此代码将帮助您解决问题:)祝您好运