短信读写
来源:互联网 发布:mac西柚色口红专柜价格 编辑:程序博客网 时间:2024/05/18 02:08
Android下关于手机中的数据存储在:data/data/com.android.providers/telephony下,
其中短信存在:telephony/mmssms.db
电话存在:telephony/telephony.db
通过ContentProvider来读取手机中的短信数据库。
content://authorities/code
短信备份(读):
1.添加权限
2.写入sdcard权限
代码:“`
1.首先创建短信实体类 SmsInfo.java
class SmsInfo{
/**
* 短信id
*/
private int id;
/**
* 短信号码
*/
private String address;
/**
* 短信日期
*/
private long date;
/**
* 短信类型(发 / 收)
*/
private int type;
/**
* 短信内容
*/
private String body;
public int getId() { return id; } public void setId(int id) { this.id = id; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public long getDate() { return date; } public void setDate(long date) { this.date = date; } public int getType() { return type; } public void setType(int type) { this.type = type; } public String getBody() { return body; } public void setBody(String body) { this.body = body; }}
}
2.备份短信,序列化到本地
/**
* 备份短信
*/
public void backupSms(){
// 1.查出所有的短信 Uri uri = Uri.parse("content://sms/"); ContentResolver resolver = getContentResolver(); Cursor cursor = resolver.query(uri, new String[]{"_id", "address", "date", "type", "body"}, null, null, null); List<SmsInfo> smsInfoList = new ArrayList<SmsInfo>(); if(cursor!=null && cursor.getCount()>0){ SmsInfo smsInfo; while (cursor.moveToNext()){ smsInfo = new SmsInfo(); smsInfo.setId(cursor.getInt(0)); smsInfo.setAddress(cursor.getString(1)); smsInfo.setDate(cursor.getLong(2)); smsInfo.setType(cursor.getInt(3)); smsInfo.setBody(cursor.getString(4)); smsInfoList.add(smsInfo); } cursor.close(); } // 2.序列化到本地 writeToLocal(smsInfoList);}/** * 序列化到本地 * @param smsInfoList */private void writeToLocal(List<SmsInfo> smsInfoList) { XmlSerializer xmlSerializer = Xml.newSerializer(); // 指定输出位置 File file = new File(Environment.getExternalStorageDirectory(), "sms.xml"); FileOutputStream fos = null; try { fos = new FileOutputStream(file); // 设置编码方式 xmlSerializer.setOutput(fos, "utf-8"); xmlSerializer.startDocument("utf-8", true); xmlSerializer.startTag(null, "SmsInfos"); for(SmsInfo smsInfo : smsInfoList){ xmlSerializer.startTag(null, "SmsInfo"); xmlSerializer.attribute(null, "id", String.valueOf(smsInfo.getId())) xmlSerializer.startTag(null, "address"); xmlSerializer.text(String.valueOf(smsInfo.getAddress())); xmlSerializer.endTag(null, "address"); xmlSerializer.startTag(null, "date"); xmlSerializer.text(String.valueOf(smsInfo.getDate())); xmlSerializer.endTag(null, "date"); xmlSerializer.startTag(null, "type"); xmlSerializer.text(String.valueOf(smsInfo.getType())); xmlSerializer.endTag(null, "type"); xmlSerializer.startTag(null, "body"); xmlSerializer.text(String.valueOf(smsInfo.getBody())); xmlSerializer.endTag(null, "body"); xmlSerializer.endTag(null, "SmsInfo"); } xmlSerializer.endTag(null, "SmsInfos"); xmlSerializer.endDocument(); xmlSerializer.flush(); Toast.makeText(this, "备份成功", Toast.LENGTH_LONG).show(); } catch (Exception e) { e.printStackTrace(); Toast.makeText(this, "备份失败", Toast.LENGTH_LONG).show(); }}
===========================================
写短信:
需要权限:
代码:`
private void writeSms(){
Uri uri = Uri.parse(“content://sms/”);
ContentResolver resolver = getContentResolver();
ContentValues values = new ContentValues();
values.put(“address”, “65566”); // 发信人
values.put(“type”, “1”); // 接收短信
values.put(“body”, “Hello,我是65566”);
resolver.insert(uri, values);
}
“`
- 短信读写
- 使用ContentProvide读写短信
- Android_读写短信
- android sim 卡短信读写
- mtk平台读写短信总结(载)
- 短信的读写与传输格式
- 读写系统数据库中的短信:ContentResolver
- php脚本读写文件发送短信记录结果
- 短信
- 短信
- 短信
- 短信
- 短信
- 短信
- 短信
- 短信
- 短信
- 短信
- 360浏览器不兼容JSON.stringify
- C++连续输入带空格的字符串
- C语言_动态链表的简单建立与节点删除
- HDU 5137 How Many Maos Does the Guanxi Worth (Floyd 最短路)
- kuangbin——线段树专题 B - I Hate It
- 短信读写
- Python简介
- 九度oj--1047素数判定
- type=image 来提交表单
- JSswitch
- iOS设计模式--总结
- TCP/IP三次握手
- 2016-8-4夏令营入营测试总结
- Android开发之--沉浸式状态栏