宇朔项目中,因为客户的需求,我把很多无关的APP都给去掉了,只保留了客户需要的电话、短信、蓝牙、通讯录、设置等几个基本APP。后来,客户反映,我们的系统,不能正常地发送接收短信,之前我没有测试过这个,还好他们测试之后提出来,不然这个不能接收短信的问题就被掩埋了!
短信不能收发的情况是这样的:发送短信时,编辑好短信,点击发送,短信APP立即弹出“很抱歉‘信息’已停止运行”提示信息;接收短信, 用可以正常发送短信的手机,给“怡康智能终端”机器(以下简称“怡康”)发送短信,“怡康”也不能接收到短信,没有拒绝接收的提示。
比对了之前的系统——没有任何修改的ITAB-01工业平板的系统,ITAB-01的系统是能够正常收发短信的,那么,就是定制系统的过程中的改动影响到了短信APP及其APP相关的服务!
首先,从日志LOG入手,通过查看相关的日志,提取有用的信息。果然,发现,Log提示短信APP缺乏一些的权限,调用了空指针,导致短信APP停止运行。后来屏蔽掉这个权限,避免空指针的出现,果真能够正常发送短信了;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
LOG:
01-01 02:31:25.059 9487-9487/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.android.mms, PID: 9487
java.lang.NullPointerException: Attempt to invoke interface method 'boolean com.mediatek.common.telephony.ILteDataOnlyController.checkPermission(int)' on a null object reference
at com.mediatek.mms.ext.DefaultMmsUtilsExt.is4GDataOnly(DefaultMmsUtilsExt.java:122)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
在文件中~/mt8735v/packages/apps/Mms/ext/src/com/mediatek/mms/ext/DefaultMmsUtilsExt.java,进行修改