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

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

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

很多人在做手机联系人的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),"display_name"},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如何获取手机联系人的数据库示例代码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1147095.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存