获取Android手机短信中心号码

首先到度娘那边找了好久,发现很多讲解,好开心。总之罗列了大约四种方法~~~借鉴了各位前辈讲解,我总结了一下:

第一位前辈:http://blog.csdn.net/chujiujiao/article/details/7278315

第一种方法 通过向移动运营商(比如10086)发送一条免费短信然后等待对方回复,从对方回复的短信中获取短信中心号;实现方式参见http://blog.csdn.net/sodino/article/details/5871537 ,该种方式的优点就是肯定能得到正确的短信中心号(电信的卡除外), 但也有一些缺点 1: 对方回复短信需要等待一段时间,具体等待多长时间无法确定。2: 有的手机不一定能成功拦截下行短信因此带来的用户体验不是很好。

第二种方法和第一种比较相似,直接从用户的收件箱中读取一条短信然后从该信息中获取短信中心号,这种方式的好处就是不用发送短信;缺点是获取的短信中心号不一定正确,比如用户以前一直用的移动的卡收件箱中短信存的都是移动的短信中心号,之后如果换成联通的卡后获取的短信中心还是移动的。

第三种就是直接获取用户手机中的短信中心号,该种方式需要你的应用满足两个条件,1:你的应用需要有系统签名. 2:你的应用需要和phone进程在同一个进程组。

第四种方法就是我成功的,当然引用了别人的Demo。然而代码是有问题的,运行起来 无短信中心号码。先来Demo下载地址 http://download.csdn.net/detail/wuzongpo/5190891#comment

主体思想就是先读取收件箱里短信,然后进行遍历,频率统计最多者就是短信中心号码。

贴出修改的这部分代码:这是未修改SmsUtil的部分代码


这是修改后的:


其实就是在对添加频率统计前判空一下。否者可能会一直提示你 无短信之类的。

缺点:::::第一,并不准确。手机查看短信中心号码方法:打开拨号键,键盘输入  *#*#4636#*#*   ,进入 手机信息 ,再下拉最后有 SMSC:      更新  刷新两个按钮,点击刷新,出来的就是。而通过demo得到的一般后四位不准。只是定位省份基本够了。这有个查询全国短信中心号码博客:http://www.52qj.com/0/102/7674.html   第二,跨省份,换卡(从移动变联动卡)。因为是统计短信频率判断。所以当你在浙江手机里存了N多短信,来到江苏后存了十几条。它获取的是以前地域的短信中心号码。

总之,没有办法直接获取到手机短信中心号码。这是为了手机安全嘛。也是为了我们自己。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值