Android 通话结束后获得额外通话\u断开\u原因

Android 通话结束后获得额外通话\u断开\u原因,android,broadcastreceiver,telephony,Android,Broadcastreceiver,Telephony,我正在制作一个Android应用程序,它需要监控电话何时断开,并让断开连接的原因做更多的事情。我正在使用广播接收器来了解电话何时断开,但我无法找到断开的原因 以下是我的简短代码: final BroadcastReceiver phoneStateReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) {

我正在制作一个Android应用程序,它需要监控电话何时断开,并让断开连接的原因做更多的事情。我正在使用广播接收器来了解电话何时断开,但我无法找到断开的原因

以下是我的简短代码:

    final BroadcastReceiver phoneStateReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String state = intent.getExtras().getString(TelephonyManager.EXTRA_STATE);
            String number = intent.getExtras().getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
            String cause = null;
            if (intent.hasExtra(TelecomManager.EXTRA_CALL_DISCONNECT_CAUSE)) {
                cause = intent.getExtras().getString(TelecomManager.EXTRA_CALL_DISCONNECT_CAUSE);
            }

            TextView callState = (TextView) findViewById(R.id.callState);
            callState.setText("Call State is: " + state + " " + number + " " + cause);
        }
    };

    btnStart.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            registerReceiver(phoneStateReceiver, new IntentFilter(TelephonyManager.ACTION_PHONE_STATE_CHANGED));

            btnStop.setEnabled(true);
            btnStart.setEnabled(false);
        }
    });

    btnStop.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            unregisterReceiver(phoneStateReceiver);

            btnStart.setEnabled(true);
            btnStop.setEnabled(false);
        }
    });
拜托,有人帮我吗?
非常感谢

从API-21文档中,&是TelecomManager的可选附加项。操作\电话\状态\已更改。在AOSP代码和Nexus5(L&M发行版)上观察到的情况下,它们似乎没有任何数据。原始设备制造商可以实施和报告这些额外的数据。我正在寻找任何使用这些额外功能的设备。如果知道有任何设备会报告呼叫断开原因/消息,那就太好了