全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

android如何获取手机联系人的数据库示例代码

很多人在做手机联系人的apk时会遇到,如何获取手机联系人数据库的问题,在这里我就简单的将代码写一下

package com.example.song.lx_day14_contacts; 
 
import android.content.ContentResolver; 
import android.database.Cursor; 
import android.net.Uri; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.widget.ListView; 
import android.widget.SimpleAdapter; 
import android.widget.TextView; 
 
import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List; 
import java.util.Map; 
 
/** 
 * 获取手机通讯录信息 展示并且修改 
 * listview 
 * simpleadapter 
 * list<Map<String,String>> 
 */ 
public class MainActivity extends AppCompatActivity { 
  private String uri_raw = "content://com.android.contacts/raw_contacts"; 
  //直接获取data表中的 数据类型是phone 
  private String uri_phone = "content://com.android.contacts/data/phones"; 
  //直接获取data表中数据类型是emali 
  private String uri_emalis = "content://com.android.contacts/data/emails"; 
  private String uri_data = "content://com.android.contacts/data"; 
  private ListView listView; 
  private TextView empty; 
  private SimpleAdapter adapter; 
  private List<Map<String, String>> data = new ArrayList<>(); 
  private ContentResolver contentResolver;//用来访问数据 
 
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    listView = ((ListView) findViewById(R.id.lv)); 
    empty = ((TextView) findViewById(R.id.empty)); 
    listView.setEmptyView(empty);//设置空视图 
    adapter = new SimpleAdapter(this, data, R.layout.item, new String[]{"_id", "display_Name", "data1"}, new int[]{R.id.id, R.id.name, R.id.number}); 
    listView.setAdapter(adapter); 
    contentResolver = getContentResolver(); 
    reloadListView(); 
  } 
 
  private void reloadListView() { 
    data.clear(); 
    data.addAll(selectData()); 
    adapter.notifyDataSetChanged(); 
 
  } 
 
  //查询工作 用于查询data raw_contact标 返回list数据 在刷新adapter 
  private List<Map<String, String>> selectData() { 
    /** 
     * 1.先查询raw 获取_id查出所有联系人 
     * 2.循环查询-->根据_id去data表中(_id=raw_contacts_id)查询 data1数据 
     */ 
    Cursor cursor = contentResolver.query(Uri.parse(uri_raw), new String[]{"_id", "display_name"}, null, null, null); 
    //cursor返回的cursor数量不定 
    List<Map<String, String>> list = new ArrayList<>(); 
    while (cursor != null && cursor.moveToNext()) { 
      String _id = cursor.getString(0); 
      String displayName = cursor.getString(1); 
      Map<String, String> map = new HashMap<>(); 
      map.put("_id", _id); 
      map.put("display_Name", displayName); 
      //根据_id 去data查手机号 
      Cursor cursor1 = contentResolver.query(Uri.parse(uri_phone), new String[]{"data1"}, "raw_contact_id=?", new String[]{_id}, null); 
      //循环拿到手机号 
      StringBuffer sb = new StringBuffer(); 
      //这里循环拿到手机号是因为有时联系人中 你可能一个人有几个电话 
      while (cursor1 != null && cursor1.moveToNext()) { 
        sb.append(cursor1.getString(0) + "\n"); 
      } 
      cursor1.close(); 
      map.put("data1", sb.toString()); 
      list.add(map); 
    } 
    cursor.close(); 
    return list; 
  } 
} 

在这里不要忘记了添加权限

<uses-permission android:name="android.permission.READ_CONTACTS" /> 
<uses-permission android:name="android.permission.WRITE_CONTACTS" /> 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# android  # 获取联系人  # 联系人数据库  # android手机联系人  # Android获取手机通讯录、sim卡联系人及调用拨号界面方法  # Android 获取手机联系人实例代码详解  # android利用ContentResolver访问者获取手机联系人信息  # Android获取手机联系人信息  # Android获取手机联系人电话号码并返回结果  # Android读取手机通讯录联系人到自己项目  # Android编程实现读取手机联系人、拨号、发送短信及长按菜单操作方法实例小结  # 浅谈Android手机联系人开发之增删查改功能  # Android ContentProvider获取手机联系人实例  # Android ContentProvider实现手机联系人读取和插入  # 在这里  # 我就  # 是因为  # 很多人  # 有几个  # 大家多多  # 忘记了  # lt  # list  # simpleadapter  # String  # MainActivity  # public  # gt  # ArrayList  # util  # TextView  # HashMap  # listview  # Map 


相关文章: 企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  建站之星如何通过成品分离优化网站效率?  建站之星云端配置指南:模板选择与SEO优化一键生成  如何通过万网虚拟主机快速搭建网站?  网站好制作吗知乎,网站开发好学吗?有什么技巧?  官网网站制作腾讯审核要多久,联想路由器newifi官网  建站之星如何优化SEO以实现高效排名?  广州网站建站公司选择指南:建站流程与SEO优化关键词解析  存储型VPS适合搭建中小型网站吗?  教育培训网站制作流程,请问edu教育网站的域名怎么申请?  如何零基础在云服务器搭建WordPress站点?  如何通过VPS搭建网站快速盈利?  c# 服务器GC和工作站GC的区别和设置  学校免费自助建站系统:智能生成+拖拽设计+多端适配  已有域名如何快速搭建专属网站?  如何通过PHP快速构建高效问答网站功能?  天津个人网站制作公司,天津网约车驾驶员从业资格证官网?  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  简历在线制作网站免费,免费下载个人简历的网站是哪些?  微信小程序 input输入框控件详解及实例(多种示例)  大连网站设计制作招聘信息,大连投诉网站有哪些?  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  广东专业制作网站有哪些,广东省能源集团有限公司官网?  ,制作一个手机app网站要多少钱?  北京制作网站的公司,北京铁路集团官方网站?  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?  测试制作网站有哪些,测试性取向的权威测试或者网站?  Python路径拼接规范_跨平台处理说明【指导】  IOS倒计时设置UIButton标题title的抖动问题  定制建站如何定义?其核心优势是什么?  网站制作新手教程,新手建设一个网站需要注意些什么?  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  建站中国官网:模板定制+SEO优化+建站流程一站式指南  个人摄影网站制作流程,摄影爱好者都去什么网站?  在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?  如何快速搭建高效简练网站?  浅析上传头像示例及其注意事项  定制建站平台哪家好?企业官网搭建与快速建站方案推荐  成都响应式网站开发,dw怎么把手机适应页面变成网页?  南宁网站建设制作定制,南宁网站建设可以定制吗?  如何选择最佳自助建站系统?快速指南解析优劣  宝塔新建站点为何无法访问?如何排查?  装修招标网站设计制作流程,装修招标流程?  如何通过.red域名打造高辨识度品牌网站?  零服务器AI建站解决方案:快速部署与云端平台低成本实践  建站之星安装后如何自定义网站颜色与字体?  Python多线程使用规范_线程安全解析【教程】    如何快速生成橙子建站落地页链接?  南平网站制作公司,2025年南平市事业单位报名时间? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。