一、读取手机中的联系人

  • 由于使用模拟器,我们首先创建几个联系人再进行读取
  • 然后创建一个项目ContactsTest,修改activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent" >

    <ListViewandroid:id="@+id/contacts_view"android:layout_width="match_parent"android:layout_height="match_parent" >

    ListView>

LinearLayout>
  • 里面先放一个列表,然后我们修改MainActivity.java的代码
package com.example.contactstest;

import java.util.ArrayList;import java.util.List;

import android.app.Activity;import android.database.Cursor;import android.os.Bundle;import android.provider.ContactsContract;import android.view.Menu;import android.view.MenuItem;import android.widget.ArrayAdapter;import android.widget.ListView;

public class MainActivity extends Activity {

 ListView contactsView;

 ArrayAdapter adapter; List contactsList = new ArrayList();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);  contactsView = (ListView) findViewById(R.id.contacts_view);  adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,contactsList);  readContacts(); }private void readContacts() {  Cursor cursor = null;try {//查询联系人   cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,null,null,null);while(cursor.moveToNext()) {//获取联系人    String displayName = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));    String number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));    contactsList.add(displayName + "\n" + number);   }  }catch(Exception e) {   e.printStackTrace();  }finally {if(cursor != null) {    cursor.close();   }  } }}
  • 接下来我们解析这个类
  • 在onCreate方法中,首先获取了ListView控件的实例,并且给它设置好了适配器。
  • 然后调用了readContacts方法,首先使用了ContentResolver的query()方法来查询系统的联系人信息,不过传入的Uri参数没有用Uri.parse()方法去解析,这是因为ContactsContrace.CommonDataKinds.Phone类已经帮我们做好了封装,提供给了一个CONTENT_URI常量,而这个常量就是用Uri.parse()方法解析出来的,接着哦我们对cursor进行遍历,将联系人和手机号这些数据逐个取出,Uri常量就是程序中的那一串,数据取出之后进行拼接,然后添加到ListView中,最后关闭cursor.
  • 还有一点,读取系统的联系人是需要权限的,因此需要修改AndoridManifest.xml文件
<?xml  version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.contactstest"android:versionCode="1"android:versionName="1.0" >

    <uses-sdkandroid:minSdkVersion="14"android:targetSdkVersion="19" />

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

二、源码:

  • ContactsTest
  • https://github.com/ruigege66/Android/tree/master/ContactsTest
  • CSDN:https://blog.csdn.net/weixin_44630050
  • 博客园:https://www.cnblogs.com/ruigege0000/
  • 欢迎关注微信公众号:傅里叶变换,个人账号,仅用于技术交流

android 傅里叶变换_Android连载38访问联系人相关推荐

  1. Android初级教程获取手机系统联系人信息

    在手机内部,对联系人信息存在对应的数据库.我们创建的而联系人信息都存在这张表中.如下是对数据库的截图,我已经对表和应该注意的地方做了红笔标注: 好了,现在可以根据数据库里面的数据来写代码了. 代码如下 ...

  2. android最佳开发实现_在android开发中使用可访问性最佳做法

    android最佳开发实现 As you know, accessibility is about building products that everyone can use easily and ...

  3. 用Java线程获取优异性能(II)——使用同步连载线程访问关键代码部份

    摘要 开发者有时创建的多线程程序会生成错误值或产生其它奇怪的行为.古怪行为一般出现在一个多线程程序没使用同步连载线程访问关键代码部份的时候.同步连载线程访问关键代码部份是什么意思呢?在这篇文章中解释了 ...

  4. Android系统修改硬件设备访问权限

    Android系统修改硬件设备访问权限 在硬件抽象层模块文件(so)文件中,提供的函数调用open函数来打开设备文件,比如/dev/gpio,如果不修改设备文件/dev/gpio的访问权限,那么应用程 ...

  5. android 发短信 调到联系人

    原文找不到了.看了别人的一些.自己加了一点.做一个代码备份.自己看就可以了.先上一下图吧.看看一效果. 通过上边选择联系人.把选择过的联系显示到EditView 中.而发送短信时.可以获取联系人的电话 ...

  6. STL 容器和迭代器连载8_访问顺序容器的元素

    2019独角兽企业重金招聘Python工程师标准>>> /*- ========================================================== ...

  7. 在Android中调用KSOAP2库访问webservice服务出现的服务端传入参数为null的问题解决

    在Android中调用KSOAP2库访问webservice服务出现的服务端传入参数为null的问题解决 参考文章: (1)在Android中调用KSOAP2库访问webservice服务出现的服务端 ...

  8. Android软件开发之获取通讯录联系人信息

    点击打开链接http://blog.csdn.net/snwrking/article/details/7601794 Android软件开发之获取通讯录联系人信息 + android联系人信息的存储 ...

  9. Android 保存号码至已有联系人,新建联系人,读取手机联系人

    添加必要的权限 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> & ...

  10. android 添加通讯录联系人头像,Android 手机通讯录开发时给联系人添加头像失败的坑...

    Android 手机通讯录开发时给联系人添加头像失败的坑,在给联系人添加头像代码 Bitmap photo = ...; // 将 Bitmap 转为 byte[] byte[] bytes = Ls ...

最新文章

  1. 动软代码生成器连接Oracle 11g
  2. HDU 3487 Play with Chain(Splay)
  3. before css 旋转_单标签!纯CSS实现动态晴阴雨雪
  4. 缩放图片,解决bitmap 内存溢出out of memory的问题
  5. centos虚拟机复制后网络重启出错解决
  6. 20162306 2017-2018-1《程序设计与数据结构》 第11周学习总结
  7. h5带mysql数据库的留言板_【mysql】用PHP写留言板,有回复功能,要写入数据库。...
  8. (转)币圈人物志 BM(EOS,BTS,Steem缔造者)
  9. itextpdf生成pdf文件(含图片)
  10. Minimum supported Gradle version is 4.10.1. Current version is 4.6.
  11. matlab改变直方图数量级,histogram equalization-MATLAB
  12. java设计模式--装饰器设计模式(javaIO设计使用)
  13. 奇门遁甲排盘方:定局
  14. 感恩节已经过了,但我们的感恩不能过去...
  15. 简单爬虫,爬取天猫商品信息
  16. 【软件工程】实验4:校园二手物品交易过程的UI设计
  17. 在Arcgis中进行拓扑检查(二)
  18. Java学习路线图—精心整理 java进阶
  19. Python 复制文件到指定路径
  20. 多线程下载管理器:Neat Download Manager Mac

热门文章

  1. leetcode之每日温度
  2. php循环,die/exit脚本执行控制,文件载入及错误控制
  3. DataFactory插入MySQL中文乱码问题
  4. 【tool】构造朴实的测试用例
  5. 20130331java语言基础学习笔记-语句_breakcontinue
  6. system.data.oracleclient requires oracle client software version 8.1.7 or greater问题(转贴)
  7. 【Research Paper】
  8. GIS案例练习-----------第四天
  9. 专题一——递归与递推
  10. php 1970毫秒数,php – date()返回1970-01-01