欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ContentProvider——内容提供者

程序员文章站 2022-07-08 10:42:09
...

今天,我们来说一下关于android四大组件之一的ContentProvider的创建以及使用
首先,我们先来了解一下ContentProvider。
ContentProvider在android中俗称为内容提供者,主要作用是可以操作其他的应用程序,也可以进行实现应用之间的数据共享。
在例如微信,QQ等App内,我们都会发现有一个匹配当前通讯录的功能,其实,这就是ContentProvider的一个例子,而ContentProvider还可以获取手机上的很多信息,例如获取短信,获取联系人信息,获得手机本地的一张图片等,这些都是ContentProvider的具体实现,下面,就让我们一起来实现一ContentProvider吧。
第一步:通过Activity的的代码来获取内容解析者

ContentResolver contentResolver = getContentResolver();//获取内容解析者

第二步:我们需要获取Uri,Uri相当与一把钥匙,可以通过这把钥匙来访问其他App的数据。不同的App所对应的Uri也是不同的,下面我们就来获取一个系统的短信

Uri contentUri = Telephony.Sms.CONTENT_URI;//手机短信的Uri

第三步:使用内容解析者来将Uri所对应的数据给获取

Cursor query = contentResolver.query(contentUri, null, null, null, null);//第一个参数:Uri,第二个参数:要查询的字段,第三个参数:查询的条件,第四个参数:条件的参数值,第五个参数:排序

第四步:我们可以使用while循环来将数据全部读出

while(query.moveToNext()){
    String string = query.getString(query.getColumnIndex(Telephony.Sms.BODY));//读取对应的字段名来获取数据
    Log.i("TAG", string);//将获取的数据给打印
}

这样,我们会发现我们手机上的短信全部的在控制台打印出来了,这就是一个简单的的读取手机上其他APP的数据操作了。
同时我们要注意在获取其他App的数据时,Uri和获取数据所对应的数据名一定要确认无误,否则会读取不到数据。
以上就是关于ContentProvider内容提供者的基本使用,感谢观看