【问题标题】:get EXTRA_CALL_DISCONNECT_CAUSE after call ended通话结束后获取 EXTRA_CALL_DISCONNECT_CAUSE
【发布时间】:2015-10-27 06:21:41
【问题描述】:

我正在制作一个 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);
        }
    });

请问,此时有人帮助我吗? 非常感谢。!!!

【问题讨论】:

    标签: android broadcastreceiver telephony


    【解决方案1】:

    根据 API-21 文档,EXTRA_CALL_DISCONNECT_CAUSEEXTRA_CALL_DISCONNECT_MESSAGE 是 TelecomManager.ACTION_PHONE_STATE_CHANGED 的可选附加项。看起来他们在 AOSP 代码中没有任何数据,并且在 Nexus 5(L 和 M 版本)上观察到。 OEM 可以在这些附加信息中实施和报告任何数据。我正在寻找任何使用这些附加功能的设备。很高兴知道任何报告呼叫断开原因/消息的设备。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-17
      • 1970-01-01
      相关资源
      最近更新 更多