【发布时间】: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