android获取短信中心号android获取短信中心号:使用读取短信的方式获取短信中心号,然后进行频率统计,获取次
android获取短信中心号
android获取短信中心号:
使用读取短信的方式获取短信中心号,然后进行频率统计,获取次数最多的。代码经真机测试可以运行。
运行效果图:
源码0分下载url:
http://download.csdn.net/detail/wuzongpo/5190891
android交流群:199831230,共同学习、研究!
部分源码展示:
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; } }Frequency.java 频率统计类
package com.wzp.sp.activity.util;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Set;import java.util.TreeSet;/** * 频率统计 * @author wzp * */public class Frequency {//存放项的出现的次数的Mapprivate Map<String, Integer> map = new HashMap<String, Integer>();//对频率进行排序private Set<Entiry> set = new TreeSet<Entiry>();
源码0分下载url:
http://download.csdn.net/detail/wuzongpo/5190891
