您的位置:首页 > 编程语言

短信修改器核心代码

2016-05-03 14:40 966 查看
1.URL

private final String SMS_URI_ALL   = "content://sms/";
private final String SMS_URI_INBOX = "content://sms/inbox";
private final String SMS_URI_SEND  = "content://sms/sent";
private final String SMS_URI_DRAFT = "content://sms/draft";


2.获取短信

/*
* 获取指定类型短信
*/
public List<Map<String, Object>> getSmsInPhone()
{
try{
ContentResolver cr = getContentResolver();
String[] projection = new String[]{"_id", "address", "person",
"body", "date", "type"};
Uri uri = Uri.parse(url);
Cursor cur = cr.query(uri, projection, null, null, "date desc");

if (cur.moveToFirst()) {
long id;
String name;
String phoneNumber;
String smsbody;
String date;
String type;

int idColumn = cur.getColumnIndex(StaticValues._ID);
int nameColumn = cur.getColumnIndex(StaticValues.PERSON);
int phoneNumberColumn = cur.getColumnIndex(StaticValues.ADDRESS);
int smsbodyColumn = cur.getColumnIndex(StaticValues.BODY);
int dateColumn = cur.getColumnIndex(StaticValues.DATE);
int typeColumn = cur.getColumnIndex(StaticValues.TYPE);

do{
id = cur.getLong(idColumn);
name = cur.getString(nameColumn);
phoneNumber = cur.getString(phoneNumberColumn);
smsbody = cur.getString(smsbodyColumn);

SimpleDateFormat dateFormat = new SimpleDateFormat(
"yyyy-MM-dd hh:mm:ss");
Date d = new Date(Long.parseLong(cur.getString(dateColumn)));
date = dateFormat.format(d);

int typeId = cur.getInt(typeColumn);
if(typeId == 1){
type = "接收";
} else if(typeId == 2){
type = "发送";
}else if(typeId == 3){
type = "草稿";
} else {
type = "";
}
if(smsbody == null)
smsbody = "";
Map<String, Object> map = new HashMap<String, Object>();
map.put(StaticValues._ID, id);
map.put(StaticValues.PERSON, name);
map.put(StaticValues.ADDRESS, phoneNumber);
map.put(StaticValues.BODY, smsbody);
map.put(StaticValues.DATE, date);
map.put(StaticValues.TYPE, type);
list.add(map);
}while(cur.moveToNext());
cur.close();
}
} catch(SQLiteException ex) {
Log.d("SQLiteException in getSmsInPhone", ex.getMessage());
}
return list;
}


3.修改短信

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
date = sdf.parse(editText4.getText().toString());
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

cv.put(StaticValues.BODY, editText3.getText().toString());
cv.put(StaticValues.DATE, date.getTime());
context.getContentResolver().update(Uri.parse(SMS.url),
cv, StaticValues._ID + "=?", new String[]{id+""});


4.权限

<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />


5.示例代码,请下载http://download.csdn.net/detail/drothy_qin/9508824
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: