获取短信

/**
 _id:短信序号,如100
 thread_id:对话的序号,如100,与同一个手机号互发的短信,其序号是相同的
 address:发件人地址,即手机号,如+86138138000
 person:发件人,如果发件人在通讯录中则为具体姓名,陌生人为null
 date:日期,long型,如1346988516,可以对日期显示格式进行设置
 protocol:协议0SMS_RPOTO短信,1MMS_PROTO彩信
 read:是否阅读0未读,1已读
 status:短信状态-1接收,0complete,64pending,128failed
 type:短信类型1是接收到的,2是已发出
 body:短信具体内容
 service_center:短信服务中心号码编号,如+8613800755500
 */
import java.util.ArrayList;
import java.util.List;

import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;

/**
 * @author Spoon(XR)
 * 权限:<uses-permission android:name="android.permission.READ_SMS" />
 */
public class GetSms {
	/**
	 * 
	 * 所有的短信
	 */
	public static final String SMS_URI_ALL = "content://sms/";
	/**
	 * 
	 * 收件箱短信
	 */
	public static final String SMS_URI_INBOX = "content://sms/inbox";
	/**
	 * 
	 * 已发送短信
	 */
	public static final String SMS_URI_SEND = "content://sms/sent";
	/**
	 * 
	 * 草稿箱短信
	 */
	public static final String SMS_URI_DRAFT = "content://sms/draft";

	public static List<SmsInfo> lists = new ArrayList<SmsInfo>();

	public static void getSms(Context context) {
		Uri uri = Uri.parse(SMS_URI_INBOX);
		String[] projection = new String[] { "_id", "address", "person",
				"body", "date", "type" };
		ContentResolver contentResolver = context.getContentResolver();
		Cursor cusor = contentResolver.query(uri, projection, null, null,
				"date desc");
		String smsBody;
		String phoneNumber;
		String date;
		String name;
		String type;
		if (cusor != null) {
			while (cusor.moveToNext()) {
				name = cusor.getString(cusor.getColumnIndex("person"));
				date = cusor.getString(cusor.getColumnIndex("date"));
				phoneNumber = cusor.getString(cusor.getColumnIndex("address"));
				smsBody = cusor.getString(cusor.getColumnIndex("body"));
				type = cusor.getString(cusor.getColumnIndex("type"));
				SmsInfo smsinfo = new SmsInfo(smsBody, phoneNumber, date, name,
						type);
				lists.add(smsinfo);
			}
		}
	}
}


转载于:https://my.oschina.net/spoon2014/blog/475415

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值