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

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

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

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

既然已经分析好了,我们需要什么,不需要什么。 当然还需要知道短信提供者给第三方的URL。这个可以通过Android源码查看。

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

先看Activity中的代码:

public class ReadMessageActivity extends Activity {Button readMessage;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity_readmessage);readMessage = (Button)findViewById(R.id.button1);readMessage.setOnClickListener(new OnClickListener() {@Overridepublic 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。 读取系统短信就算是简单的完成了。 接着我们往系统中写一条短信

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

代码如下:

     writeMessage.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// 写短信按钮被按下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四大组件之Activity(三)

    这是一篇关于android开发四大组件Activity部分的笔记之一,其中主要介绍Activity的生命周期以及一些实例等内容.这里所用到的开发工具是Android4.1. 目录 14.Activit ...

  2. Android四大组件之——Activity的生命周期(图文详解)

        转载请在文章开头处注明本博客网址:http://www.cnblogs.com/JohnTsai       联系方式:JohnTsai.Work@gmail.com       [Andro ...

  3. Android四大组件之ContentProvider 全面解析,ContentResolver源码解析如何调用其它APP的ContentProvider

    今天来总结下Android中的ContentProvider(以下简称CP),具体代码请见https://github.com/Mangosir/ContentProviderReview/tree/ ...

  4. Android四大组件之——Broadcast学习总结

    1.Broadcast概念 是一个全局的监听器,属于Android四大组件之一.Broadcast(广播)是一种广泛运用的在应用程序(APP)之间传输信息的机制.而BroadcastReceiver( ...

  5. Android四大组件和启动模式(面试总结)

    一.Android四大组件详解 Android四大组件分别为Activity.Service.Content Provider.Broadcast Receiver. 1.Activity (1)一个 ...

  6. Android 四大组件通信核心

    前言 系列文章: Android Activity创建到View的显示过程 Android 四大组件通信核心 Android 系统启动到App 界面完全展示终于明白(图文版) 我们知道Android ...

  7. Android四大组件总结

    四大组件系列文章 Activity总结和补充:Activity总结和补充_fdsafwagdagadg6576的博客-CSDN博客 Android Binder&Aidl理解和补充:Andro ...

  8. Android四大组件之一 ContentProvide

    简介 Android四大组件之一 content provider,它主要的作用是:实现各个应用程序之间的(跨应用)数据共享. 在这里涉及到进程通信问题,自然在Android中使用的是binder来进 ...

  9. Android——四大组件、六大布局、五大存储

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

  10. Android 四大组件 —— 服务

    一.服务是什么 服务(Service)是Android 中实现程序后台运行的解决方案,它非常适合用于去执行那些不需要和用户交互而且还要求长期运行的任务.服务的运行不依赖于任何用户界面,即使当程序被切换 ...

最新文章

  1. 1.Power Designer 由数据库反向生成pdm文件
  2. 【Android Gradle 插件】Android Plugin DSL Reference 离线文档下载 ( GitHub 下载文档 | 查看文档 )
  3. windbg查看设备栈设备树学习总结
  4. php中如何固定表格宽度,实例讲解DataTables固定表格宽度(设置横向滚动条)
  5. miui怎么用第三方图标包_空气能热水器怎么用?控制面板的图标详解来了
  6. rstudio 管道符号_R中的管道指南
  7. Linux常用命令之wget
  8. 不妨问问自己,学习C语言是为了什么?
  9. python使用print不换行
  10. 从定义到AST及其遍历方式,一文带你搞懂Antlr4
  11. 在国企工作30年,单位现在协商买断工龄,3000/年该走吗?
  12. html5的service worker,GitHub - w3c/ServiceWorker: Service Workers
  13. 研究员发现 Google Cloud 项目中的 SSRF 漏洞,获1万美元奖金
  14. 由数据范围反推算法复杂度
  15. 微信小程序记账报表小程序
  16. C# 之 Win32 Api使用
  17. gg 修改器游戏被保护_2.游戏so防封的制作思路
  18. ubuntu下adb的使用以及开启黑域
  19. 【FPGA频率计】基于FPGA的高精度数字频率计的详细设计
  20. 满足AUTOSAR基础软件要求的硬件安全模块(HSM)加密运算

热门文章

  1. Android 测试 之MonkeyRunner
  2. 写一个NSString类的实现
  3. python线程,进程,队列和缓存
  4. 动态时间归整/规整/弯曲(Dynamic time warping,DTW)
  5. Java-web下使用RSA进行加密解密操作
  6. 利用分类模型学习特征权重
  7. l2tp pptp相关的一些记录
  8. 内容分发网络(CDN)关键技术、架构与应用(一)
  9. Vue.js 系列教程 5:动画
  10. zabbix3.0.4安装部署文档(二)