您的位置:首页 > 数据库

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

2017-06-22 20:53 483 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: