Android基础之ContentProvider操作本地短信数据库

版权声明:本文为博主原创文章,未经博主允许不得转载。

import android.app.Activity;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;


public class MainActivity extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/*
* 查看短信数据库中的信息
*/


public void seeSms(View v) {
// 获取内容解析者
ContentResolver cr = getContentResolver();
// 获取sms的uri
Uri uri = Uri.parse("content://sms");
String type = cr.getType(uri);
if (type.startsWith("vnd.android.cursor.dir")) {
// 查看信息的内容,根据自己的需要选择字段
Cursor cursor = cr.query(uri, new String[] { "_id", "address",
"type", "body" }, null, null, null);
while (cursor.moveToNext()) {
int id = cursor.getInt(0);
String address = cursor.getString(1);
String type1 = cursor.getString(2);
String body = cursor.getString(3);
//打印出信息
Log.v("520it", id + "   " + address + "   " + type1+"    "+body);
}
cursor.close();
}


}
/*
* 更改短信数据库中的信息
*/


public void upSms(View v) {
// 获取内容解析者
ContentResolver cr = getContentResolver();
// 需求,把id为2的信息内容(body)改为,"好好学习,老王在隔壁"
Uri uri = Uri.parse("content://sms/2");
String type = cr.getType(uri);
if (type.startsWith("vnd.android.cursor.item")) {
ContentValues values=new ContentValues();
values.put("body", "好好学习,老王在隔壁");
cr.update(uri, values, null, null);
}

}
/*
* 删除短信数据库中的信息
*/
public void deleteSms(View v) {
// 获取内容解析者
ContentResolver cr = getContentResolver();
// 需求,那发送方为10086的信息删除
Uri uri = Uri.parse("content://sms");
String type = cr.getType(uri);
if (type.startsWith("vnd.android.cursor.dir")) {
int delete = cr.delete(uri, "address=? and type=?", new String[]{"10086","1"});
}
}
/*
* 向信息数据库中加入自定义信息
*/
public void insetSms(View v) {
// 获取内容解析者
ContentResolver cr = getContentResolver();
// 需求,本地发送到10000的短信,内容为 "没钱了" 当前时间  
Uri uri = Uri.parse("content://sms");
String type = cr.getType(uri);
if (type.startsWith("vnd.android.cursor.dir")) {
ContentValues values=new ContentValues();
values.put("address", "110");
values.put("date", System.currentTimeMillis());
values.put("type", 2);
values.put("read", 1);
values.put("body", "没钱了");
values.put("status", -1);
values.put("seen", 1);
Uri insert = cr.insert(uri, values);
Log.v("520it", insert+"");
}
}
}

**********************************************************

权限

<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.WRITE_SMS"/>
信息数据库的位置
data/data/com.android.providers.telephony/databases/mmssms.db
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值