您的位置:首页 > 其它

FAQ02963]如何拦截来电,即在电话ring之前就有机会检查来电号码?

2017-04-07 17:47 302 查看
[Android Version]
Android V2.3 (GB,GB2,GB3)
Android V4.0, 4.1,4.2(ICS,ICS2,JB,JB2,JB3,JB5)
Android V4.4及之后版本
[DESCRIPTION]
在电话ring之前检查来电号码。
[SOLUTION]
 
**L0及L1
在frameworks\opt\telephony\src\java\com\android\internal\telephony\gsm\GsmCallTrackerHelper.java文件的方法CallIndicationProcess 里做Phone number的检查,如果需要拦截,将方法里mode处理为1即可。
 
**L之前的版本
 
第一种方法:
可以在CallNotifier.java的onNewRingingConnection中拦截。

根据需要从    

Connection c = (Connection) r.result;  
中来电连接中分析来电数据,从而判定是否要拦截。
第二种方法:
GsmCallTraker.java下的
handleIncomingCallIndication函数中,获取EAIC上报时的number;
如果需要在此处拦截,将incoming call hangup,需要使得modem不上报之后的ring,否则会导致电话挂断时,界面仍然有incoming call的情况;
可以用如下方法,来使得在收到EAIC上报时,hangup incoming call后,modem不再上报ring:
在hangup前,调用cm.setCallIndication(1, callId, seqNumber, obtainCompleteMessage())
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: