设为首页 加入收藏

TOP

Android获取短信中心号
2014-11-24 07:46:07 来源: 作者: 【 】 浏览:1
Tags:Android 获取 短信中心

使用读取短信的方式获取短信中心号,然后进行频率统计,获取次数最多的。代码经真机测试可以运行。


使用读取短信这种方法,获取的短信中心号可能不准,但是其他方法都没有测试成功(真机不能运行),不知道什么原因。


运行效果图:



================================================


Android获取短信中心号源码下载:


具体下载目录在 /2013年资料/3月/29日/Android获取短信中心号


================================================


部分源码展示:


SmsUtil.java 短信相关类


package com.wzp.sp.activity.util;


import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteException;
import android.net.Uri;


public class SmsUtil {
private Activity activity;
private static SmsUtil sms;

private SmsUtil( Activity activity){
this.activity=activity;
}
public static SmsUtil getInstance(Activity activity){
if(sms==null){
sms=new SmsUtil(activity);
}
return sms;
}

/**
* 读取短信
* @return
*/
public String getSmsCenter()
{
String[] projection = new String[] {"service_center"};
StringBuilder str=new StringBuilder();
try{
//获取所有短信,按时间倒序
Cursor myCursor =activity.managedQuery(Uri.parse("content://sms/inbox"),
projection,
null, null , "date desc");
return doCursor(myCursor);
}
catch (SQLiteException ex)
{
ex.printStackTrace();
}
return null;
}

/**
* 处理游标,得到短信中心号
* @param cur 游标
* @return 短信中心号
*/
private String doCursor(Cursor cur) {
//短信中心号
String smscenter=null;
if (cur.moveToFirst()) {
String smsc;
int smscColumn = cur.getColumnIndex("service_center");
//频率统计
Frequency fre=new Frequency();
int index=0;
do {
smsc = cur.getString(smscColumn);
fre.addStatistics(smsc); //添加到频率统计
index++;
} while (cur.moveToNext() && index<50);
smscenter=fre.getMaxValueItem().getKey();
}
return smscenter;
}

}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Hibernate 面试中最常考察的知识.. 下一篇Linux下C语言调试

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Asus Armoury Crate (2025-12-26 02:52:33)
·WindowsFX (LinuxFX) (2025-12-26 02:52:30)
·[ Linux运维学习 ] (2025-12-26 02:52:27)
·HTTPS 详解一:附带 (2025-12-26 02:20:37)
·TCP/IP协议到底在讲 (2025-12-26 02:20:34)