使用ContentResolver获取联系人信息
来源:互联网 发布:python 获取网页内容 编辑:程序博客网 时间:2024/05/04 15:06
ContentResolver的作用:
1、可以通过ContentResolver来获取android内部的数据,比如联系人信息、系统的多媒体信息、短信信息等等。
2、可以获取提供了ContentProvider的应用的数据。
ContentResolver的使用方法:(参考《疯狂Android讲义第三版》446面)
1、调用Context的getContentResolver()获取ContentResolver对象。
2、根据需要调用ContentResolver的insert(),delete(),updata(),query方法操作数据库。
3、为了操作系统提供的ContentResolver,需要了解该ContentProvider的Uri,以及该ContentProvider所操作的数据列的列名,可以通过查阅Android官方文档来获取这些信息。
4、使用时牢记不要忘记在AndroidManifest中添加权限,并且要及时close掉curcor
下面来具体操作
first.首先需要知道获取联系人的URI
<1>content://com.android.contacts/raw_contacts(获得联系人的id,姓名)<2>content://com.android.contacts/raw_contacts/"+id+"/data(根据联系人的id获得联系人的信息)短信。
手机系统的表中,联系人的 姓名、id 是在raw_contacs表,号码、头像、邮箱等信息又是在data表中,所以需要以上2个Uri来查询联系人信息,如果有兴趣可以将自己的手机root查看手机系统文件
second.需要在清单文件里添加获取联系人信息的权限
<!--添加联系人权限--><uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
third.最后结果如图,点击按钮获取手机所有联系人id,姓名,号码
fourth.具体代码
package com.zking.a24provider;import android.content.ContentResolver;import android.database.Cursor;import android.net.Uri;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.ListView;import android.widget.SimpleAdapter;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class Provider25Activity extends AppCompatActivity { private ContentResolver cr; private ListView provider25_listview; private List<Map<String, Object>> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_provider25); //展示联系人的listview provider25_listview = (ListView) findViewById(R.id.provider25_listview); list = new ArrayList<>(); //得到内容访问者 cr = getContentResolver(); } //得到联系人点击事件 public void getRaw_contacs(View view){ //获得联系人的姓名id Uri uri=Uri.parse("content://com.android.contacts/raw_contacts"); Cursor cursor= cr.query(uri,null,null,null,null); while (cursor.moveToNext()){ //id int id=cursor.getInt(cursor.getColumnIndex("_id")); //姓名 String name=cursor.getString(cursor.getColumnIndex("display_name")); //通过id得到data表中对应的电话号码 Uri uri1=Uri.parse("content://com.android.contacts/raw_contacts/"+id+"/data"); Cursor cursor1=cr.query(uri1,null,null,null,null); while (cursor1.moveToNext()){ //电话号码 String tel=cursor1.getString(cursor1.getColumnIndex("data1")); String type=cursor1.getString(cursor1.getColumnIndex("mimetype")); if(type.contains("phone")){ Log.i("text",id+" "+name+" "+tel); Map<String ,Object> map=new HashMap<>(); map.put("id",id); map.put("name",name); map.put("tel",tel); list.add(map); } } } //使用SimpleAdapter来展示数据 SimpleAdapter simpleAdapter=new SimpleAdapter(this,list,R.layout.item_list,new String[]{"id","name","tel"},new int[]{R.id.tv_item_list_id,R.id.tv_item_list_name,R.id.tv_item_list_age}); //最后给listview设置适配器 provider25_listview.setAdapter(simpleAdapter); }}
1 0
- 使用ContentResolver获取联系人信息
- 通过ContentResolver获取手机中的联系人信息
- Android ContentResolver ContactsContract 获取手机联系人信息
- android ContentResolver的使用(获取和修改联系人信息demo)
- ContentResolver获取手机联系人
- 利用ContentResolver内容访问者获取手机联系人信息
- Android ContentResolver 获取手机联系人
- Android ContentResolver 获取手机联系人
- Android ContentResolver 获取手机联系人
- 通过ContentResolver获取手机里的联系人信息(史上最全的归纳)
- [android开发]ContentResolver读取手机联系人信息
- ContentResolver获取系统短消息联系人等
- 使用ContentProvider获取联系人的所有信息
- 使用系统ContentProvider获取联系人信息
- 使用AsyncTask异步获取联系人信息
- Intent的使用,获取联系人信息
- 使用ContentResolver操作手机系统联系人
- 获取android联系人信息
- C语言二级指针
- java多用户商城系统架构之第一篇——总的介绍
- struts2中国际化的应用
- Oracle分区
- 从USB闪存驱动器启动 Hiren的BootCD --制作U盘启动盘
- 使用ContentResolver获取联系人信息
- HDU - 1394 Minimum Inversion Number 树状数组求逆序数
- python函数传参是传值还是传引用?
- 华为机试--称砝码
- 使用scikit-learn实现逻辑回归对牵牛花类别的预测
- HTTP协议状态码详解(HTTP Status Code)
- 反向传播算法(过程及公式推导)
- 早产的2016年终总结
- 解决在线安装chrome时,安装程序一直保持"正在连线"的情况