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 {
	//存放项的出现的次数的Map
	private Map<String, Integer> map = new HashMap<String, Integer>();
	//对频率进行排序
	private Set<Entiry> set = new TreeSet<Entiry>();
	

 

源码0分下载url:

http://download.csdn.net/detail/wuzongpo/5190891