专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Ruby/Rails

android无法自动识别sim卡中短信中心号码(SMSC刷新error)的解决办法

发布时间:2011-06-29 18:38:23 文章来源:www.iduyao.cn 采编人员:星星草
android无法自动识别sim卡中短信中心号码(SMSC刷新error)的解决方法

前几日淘宝上买了一张联通3G的电话卡,拿到后迫不及待的放入手机想体验一下3G网络的快感,确实,网速很快,刷新网页那叫一个爽啊。不过没多久就遇到问题,短信能收不能发,*#*#4636#*#*进入手机信息,SMSC刷新出现“refresh error”,心想简单,自己写入后更新就行了;结果更新未出问题,但刷新后依然“refresh error”。

开始网上各种找,各种方法觉试了个遍,无解,唯一一条可能有用的就是让我去联通营业厅换卡。说实话卡没问题,至少放在媳妇儿的MT15I上正常工作。然后就怀疑是第三方ROM的问题,刷回官方ROM依然error,崩溃~

 

突然想到既然是自用,就无所谓自动识别和可以在某界面更换该号码,刚巧CM9的源代码也同步了一份,于是就从Mms的发送代码开始查起,最终定位到framewor/android/telephony下的SmsManager类,通过短信中心发送消息的代码就在这里面,定位参数scAddress,该参数为短信中心号码,既然系统无法读取那就在代码中写死该参数就可以了,相应位置加入“scAddress="+8613010470500"”,当然不止一处。编译,将编译好的framework.jar通过adb push进手机,重启,发送消息,成功!!!!!!!!!!!

 

下面是基于我编译的代码进行修改的方法,不涉及代码的修改和编译,所以仅需要java环境和smali以及baksmali即可(当然,解压缩的软件必备);

1.将你手机中的framework.jar拷贝到掉中。

2.用smali将framework.jar反编译,得到一个包含一堆smali文件的文件夹,比如是framework;

3.将附件的SmsManager.smali文件拷贝到\framework\android\telephony文件夹下,替换原文件,用文本编辑器打开SmsManager.smali,搜索"+8613010470500",将其替换为你所使用的短信中心号码(3处),保存。

4.用baksmali将framework文件夹编译为classes.dex。

5.将1中的framework.jar用压缩软件打开,将4中编译所得的classes.dex替换进压缩包中。

6.将5中所得的framework.jar放回手机的/system/framework,替换源文件,记得改权限。

 

 

补充一点,该方法对所有android系统均有效,因为从2.1到4.0我没发现该类有变更过。

 

 

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: