/**
_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