android 通话结束广播,处理来电时的Android应用暂停,并在通话结束后恢复

你必须为PhoneState实现一个Listener.我是在私人班级做到的:

private class PhoneCallListener extends PhoneStateListener {

private boolean isPhoneCalling = false;

// needed for logging

String TAG = "PhoneCallListener";

@Override

public void onCallStateChanged(int state, String incomingNumber) {

if (TelephonyManager.CALL_STATE_RINGING == state) {

// phone ringing

Log.i(TAG, "RINGING, number: " + incomingNumber);

}

if (TelephonyManager.CALL_STATE_OFFHOOK == state) {

// active

Log.i(TAG, "OFFHOOK");

isPhoneCalling = true;

}

if (TelephonyManager.CALL_STATE_IDLE == state) {

// run when class initial and phone call ended,

// need detect flag from CALL_STATE_OFFHOOK

Log.i(TAG, "IDLE");

if (isPhoneCalling) {

Log.i(TAG, "restart app");

// restart call application

Intent i = getBaseContext().getPackageManager()

.getLaunchIntentForPackage(

getBaseContext().getPackageName());

i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK

| Intent.FLAG_ACTIVITY_CLEAR_TOP

| Intent.FLAG_ACTIVITY_SINGLE_TOP);

startActivity(i);

isPhoneCalling = false;

}

}

}

}

并且您需要将权限添加到Manifest-File

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值