上节课学习怎样自己创建一个ContentProvider。以及用ContentResolver去操作ContentProvider。

今天我们用系统提供的ContentProvider。 先来个简单的,读取系统的短信内容。

依据上节知道。既然要读取系统的短信,那就得先找到系统的短信在那里?

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

先找到短信数据库所在的问题,然后导出,查看里面的内容

既然已经分析好了,我们须要什么,不须要什么。 当然还须要知道短信提供者给第三方的URL。

这个能够通过Android源代码查看。

那我们就写一个程序,读取系统中的短信

先看Activity中的代码:

public class ReadMessageActivity extends Activity {

	Button readMessage;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_readmessage); readMessage = (Button)findViewById(R.id.button1);
readMessage.setOnClickListener(new OnClickListener() { @Override
public void onClick(View arg0) {
Log.i("ReadMessageActivity", "读取联系人按钮按下了"); ContentResolver cResolver = getContentResolver();
/**
* uri: 是短信提供者的url。能够通过查看源代码获得
* projection:须要查询的几个字段,关心那个查询按个即可
*/
Cursor cursor = cResolver.query(Uri.parse("content://sms"), new String[]{"address", "date", "type", "body"}, null, null, null);
while(cursor.moveToNext())
{
String address = cursor.getString(cursor.getColumnIndex("address"));
String date = cursor.getString(cursor.getColumnIndex("date"));
String type = cursor.getString(cursor.getColumnIndex("type"));
String body = cursor.getString(cursor.getColumnIndex("body")); Log.i("ReadMessageActivity", address + ";" + date + ";" + type + ";" + body);
} }
});
}
}

布局文件就一个button,不做详解

打印结果为:

ok。 读取系统短信就算是简单的完毕了。

接着我们往系统中写一条短信

我们再加一个插入短信的button。然后当按下时就插入一条短信:

代码例如以下:

		writeMessage.setOnClickListener(new OnClickListener() {

			@Override
public void onClick(View arg0) {
// 写短信button被按下 ContentResolver cResolver = getContentResolver(); ContentValues values = new ContentValues();
values.put("body", "对不起。您因为尾号为6789的手机号。欠费1w元,已停机! ");
values.put("address", 10086);
values.put("date", System.currentTimeMillis());
values.put("type", 1);
cResolver.insert(Uri.parse("content://sms"), values);
}
});

结果例如以下:

能够看到数据库中已经有信插入的信息,同一时候对话框中也出现了。 所以插入短信就搞定了。

Android 四大组件学习之ContentProvider三的更多相关文章

  1. Android 四大组件学习之ContentProvider五

    上几节学习了ContentProvider的实际用途,读取短信.插入短信,读取联系人.插入联系人等. 本节课在学习ContentProvider的观察者. 在生活中有第三方的软件.比方什么短信软件.此 ...

  2. Android 四大组件学习之ContentProvider二

    上节学习了什么是ContentProvider.以及ContentProvider的作用.以及什么是URL.本节就对上节学习的知识做一个实践,也就是定义自己的ContentProvider 好.实践是 ...

  3. Android 四大组件学习之BroadcastReceiver三

    本节学习广播的分类. 广播分为无序广播和有序广播 无序广播: 广播发送者的action与广播接收者的action都匹配的话,所以广播介绍者都能够收到这条广播,而且没有先后顺序,能够觉得是同一时候收到 ...

  4. Android 四大组件学习之ContentProvider四

    上节我们学习了怎样去读取系统短信以及插入一条短信到系统中. 本节我们学习怎样获取系统的联系人,以及插入一条联系人 好.废话不多说了,直接操作. 首先和读取短信一样,先找到联系人在数据库中的位置. wa ...

  5. android四大组件学习总结以及各个组件示例(1)

    android四大组件分别为activity.service.content provider.broadcast receiver. 一.android四大组件详解 1.activity (1)一个 ...

  6. Android 四大组件学习之Server一

    上次学习了Android四大组件Activity之后,我们深刻理解了Activity.这次我们学习四大组件Service. Service与Activity的级别是一样的,都是Android系统不可缺 ...

  7. Android 四大组件学习之BroadcastReceiver一

    本节课学习四大组件最后一个, 广播接受者. 顾名思义广播接受者就是接受广播呗.比方在现实社会中,曾经每一个人家都有一台收音机,这可就能够去接受广播发出来的消息.大家都知道.程序世界也是參照的显示生活设 ...

  8. Android四大组件之一:ContentProvider(内容提供者)

    Android中还提供了名为ContentProvider(内容提供者),可以向其他应用提供数据,但不常用,除非是同一公司开发的App,可以向不同应用提供数据.虽然为Android的四大组件之一,但用 ...

  9. android四大组件学习总结以及各个组件示例(2)

    上篇博文讲解了activity.content provider,此篇博文来仔细总结service.broadcast receiver: 3. Service >什么是服务?>windo ...

随机推荐

  1. EOJ 2822 内存显示

    一个 int 类型变量或 double 类型变量在连续几个字节的内存中存放.读取数值时,当数值中包含小数点时类型为 double,否则类型为 int.将读入的数值存放在 int 类型变量或 doubl ...

  2. JavaScript:对象

    ylbtech-JavaScript:对象 1. JavaScript Array 对象返回顶部 1. JavaScript Array 对象 Array 对象 Array 对象用于在变量中存储多个值 ...

  3. [luogu普及] ---P1032 字串变换

    目的 刷完100AC (最近很不舒服,写博客耗时啊 记录第一个字符串的题目 参考 https://www.luogu.org/blog/user20197/solution-p1032 代码 #inc ...

  4. ubuntu刚安装好之后apt-get使用异常

    gaozhang 刚安装好之后,想执行apt-get update 任务,出现以下错误提示   提示说明apt正在执行,我们就野蛮的将apt进程杀.死即可,不过有点多,一个个kill   执行完之后再 ...

  5. Android平台下的TCP/IP传输(客户端)

    在工科类项目中,嵌入式系统与软件系统或后台数据库之间的信息传输是实现“物联网”的一种必要的途径,对已简单概念的物联网,通常形式都是一个单片机/嵌入式系统实现数据的采集及其处理,通过蓝牙,wifi或者是 ...

  6. Irrlicht 1.8.4 + Win7 + VC2015 + x64 +OpenGL编译

    1. 下载irrlicht1.8.4 https://nchc.dl.sourceforge.net/project/irrlicht/Irrlicht%20SDK/1.8/1.8.4/irrlich ...

  7. winfrom窗体属性

  8. idea下的jsp开发中cannot resolve taglib with uri的解决方法

    写jsp难免会用到<c:foreach>标签,于是我在idea上的jsp顶头写下了 <%@ taglib prefix="c" uri= 'http://java ...

  9. 使用Storm实现实时大数据分析!

    随着数据体积的越来越大,实时处理成为了许多机构需要面对的首要挑战.Shruthi Kumar和Siddharth Patankar在Dr.Dobb's上结合了汽车超速监视,为我们演示了使用Storm进 ...

  10. Windows各种计时器

    (一):OnTimer类 1.打开对应对话框的类向导ClassWizard. 2.在消息映射MessageMaps中添加消息Message:WM_TIMER. 3.程序代码中将自动添加函数OnTime ...