Android 四大组件学习之ContentProvider三
上节课学习怎样自己创建一个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三的更多相关文章
- Android 四大组件学习之ContentProvider五
上几节学习了ContentProvider的实际用途,读取短信.插入短信,读取联系人.插入联系人等. 本节课在学习ContentProvider的观察者. 在生活中有第三方的软件.比方什么短信软件.此 ...
- Android 四大组件学习之ContentProvider二
上节学习了什么是ContentProvider.以及ContentProvider的作用.以及什么是URL.本节就对上节学习的知识做一个实践,也就是定义自己的ContentProvider 好.实践是 ...
- Android 四大组件学习之BroadcastReceiver三
本节学习广播的分类. 广播分为无序广播和有序广播 无序广播: 广播发送者的action与广播接收者的action都匹配的话,所以广播介绍者都能够收到这条广播,而且没有先后顺序,能够觉得是同一时候收到 ...
- Android 四大组件学习之ContentProvider四
上节我们学习了怎样去读取系统短信以及插入一条短信到系统中. 本节我们学习怎样获取系统的联系人,以及插入一条联系人 好.废话不多说了,直接操作. 首先和读取短信一样,先找到联系人在数据库中的位置. wa ...
- android四大组件学习总结以及各个组件示例(1)
android四大组件分别为activity.service.content provider.broadcast receiver. 一.android四大组件详解 1.activity (1)一个 ...
- Android 四大组件学习之Server一
上次学习了Android四大组件Activity之后,我们深刻理解了Activity.这次我们学习四大组件Service. Service与Activity的级别是一样的,都是Android系统不可缺 ...
- Android 四大组件学习之BroadcastReceiver一
本节课学习四大组件最后一个, 广播接受者. 顾名思义广播接受者就是接受广播呗.比方在现实社会中,曾经每一个人家都有一台收音机,这可就能够去接受广播发出来的消息.大家都知道.程序世界也是參照的显示生活设 ...
- Android四大组件之一:ContentProvider(内容提供者)
Android中还提供了名为ContentProvider(内容提供者),可以向其他应用提供数据,但不常用,除非是同一公司开发的App,可以向不同应用提供数据.虽然为Android的四大组件之一,但用 ...
- android四大组件学习总结以及各个组件示例(2)
上篇博文讲解了activity.content provider,此篇博文来仔细总结service.broadcast receiver: 3. Service >什么是服务?>windo ...
随机推荐
- number随时间随机递增每天 不同 php(原创)
<?php namespace Controller; class IndexController{ public function getAutoRegUserName(){ $sql=&qu ...
- 虚拟机CentOS设置IP
虚拟机里Centos7的IP地址查看方法 本地虚拟机安装了CentOS 7,想通过ftp上传文件,发现通过ifconfig,没有inet这个属性 查看ens33网卡的配置:vi /etc/syscon ...
- BZOJ 3522 DFS+DP
思路: f[]表示选1个点的 g[]表示选2个点的 dp一下 ans+=(ll)g[k]*deep[k]; g[k]+=(ll)f[k]*deep[k]; f[k]+=deep[k]; 听说有O(n) ...
- Unity3d Vector3
using UnityEngine; using System.Collections; public class test : MonoBehaviour { void Start () { Vec ...
- Three.js入门——画星空(star field)
Three.js是一个很流行的3D JavaScript库.这里有一个three.js的入门教程,在浏览器窗口中画出星空.我按照教程重新实现了一遍,这里的这篇博客把教程大致翻译了一遍.我的demo. ...
- mysql5.5和5.6版本更新内容
mysql 5.5,5.6 比5.1改进地方: 1,5.5默认存储引擎为innodb2,5.5增加cpu多核处理能力:innodb_read_io_threads innodb_write_io_th ...
- 搞不懂的算法-排序篇<2>
上一篇排序算法<1>中,排序算法的时间复杂度从N2到NlgN变化,但他们都有一个共同的特点,基于比较和交换数组中的元素来实现排序,我们称这些排序算法为比较排序算法.对于比较排序算法,所有的 ...
- Language Integrated Query
Language Integrated Query (LINQ, pronounced "link") is a Microsoft .NET Framework componen ...
- mach-o可执行文件结果
使用工程:machoview
- C# switch 语句
switch ("MySql") //选择语句 // case语句 成对 结束 执行到 第一个break { case "SqlServer2000": cas ...