我正在制作一款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);
}
});
拜托,有人在这一点帮助我吗? 非常感谢。!!!
答案 0 :(得分:1)
来自API-21文档,EXTRA_CALL_DISCONNECT_CAUSE& EXTRA_CALL_DISCONNECT_MESSAGE是TelecomManager.ACTION_PHONE_STATE_CHANGED的可选附件。看起来他们在AOSP代码中没有任何数据,并且在Nexus 5(L& M版本)上观察到。它已经留给OEM来实现和报告这些额外的任何数据。我正在寻找使用这些附加功能的任何设备。很高兴知道任何报告呼叫断开原因/消息的设备。