项目场景:
智能车载机问题描述:
车载机使用4G流量,但客户接入的是带通话功能的sim卡,客户测试过程中遇到有人拨号,来电音量不是静音情况下,居然通了。客户提出禁止来电功能。
原因分析:
尽管系统进行了裁剪,去掉了拨号和来电APP,但是来电等功能还是可以使用的,最后无人接通,系统通知栏出现了来电未接图标。
解决方案:
方案1,求助
系统开发人员在系统层修改代码,禁止来电及拨号功能,当然是行的通的,但是被告知不能及时修改,那么进行OTA升级可能要过段时间,可是应用马上到了发布日,就先自己想想办法了。当然如果你的小伙伴很给力,那么直接进行OTA升级就可以解决,应用层无需更改。
方案2,实现来电自动拒接
监听来电通知,在有电话进来的时候,拒接,注意:权限。
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ANSWER_PHONE_CALLS" />
实现方法(注意我这边因为有系统编译的SDK包,所以可以直接调用,没有的话,可通过反射实现)
private void endCall(){
AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
TelephonyManager tm = (TelephonyManager) getSystemService(Service.TELEPHONY_SERVICE);
tm.listen(new PhoneStateListener(){
@Override
public void onCallStateChanged(int state, String phoneNumber