- 浏览: 707079 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (260)
- web 开发 (44)
- struts (14)
- java (39)
- 我的感受 (2)
- ajax (2)
- spring (22)
- Hibernate (4)
- struts2 (1)
- java 面试题 (1)
- 英语 学习类 (2)
- jdk1.6特性 (1)
- extjs (13)
- oracle (3)
- JQuery (3)
- ┠ 『Spring 3.0』 ┨ (1)
- 『LOG4J』 (2)
- 『常用数据』 (1)
- JavaMail (0)
- 〓『 EJB3.0 』〓 (0)
- HTML5 (5)
- Canvas (0)
- spring2.5 (0)
- HPH 5 (1)
- C# .net (0)
- UML (1)
- REST (2)
- JS_validate (1)
- 项目管理文章 (1)
- 闲聊闲记 (12)
- SQL-SQL (3)
- javascript (18)
- js (4)
- linux (8)
- 电子政务 (1)
- 项目对象模型 (1)
- 系统集成项目管理 (1)
- shell (2)
- mysql (1)
- solr (5)
- cxf;services (2)
- 11 (0)
- 缓存 (1)
- cached (3)
- 单片机通信 (1)
- cached;oscache (1)
- android (15)
- android;蓝牙 (1)
- Lucene (5)
- TTS (1)
- 网络爬虫 (1)
- HtmlCleaner (1)
- iPhone (2)
- 有感而发 (1)
- Python (0)
- jetty (1)
- Redis (1)
- hadoop (1)
- socket (1)
- 色彩顾问 (1)
- javaapns (1)
- bat (1)
- object-c (4)
- ios (4)
- C-学习 (1)
- 搜索 (1)
- c# (1)
最新评论
-
annie211:
Angularjs构建一个CRUD应用可能用到的全部内容包括:数据绑定、基本模板标识符、表单验证、路由、深度链接、组件重用、依赖注入 -
潇寒听竹:
你好,请问您上传的那个APK为什么每次只能识别一次,不能连续识 ...
pocketsphinxAdroid离线语音识别---入门 -
ichenwenjin:
Angularjs构建一个CRUD应用可能用到的全部内容包括:数据绑定、基本模板标识符、表单验证、路由、深度链接、组件重用、依赖注入 -
NN_iaoiao:
问一下 你的这个People 类 是自定义的还是android ...
android 获取电话本中的联系人列表 -
wangzhe_real:
对于刚接触的我是一个很详细的教程,太感谢了
JAX-RS cxf web服务 rest简单增删改查 集成spring webService
首先这里介绍一下 获取思路。
第一种 : 直接查通讯录的数据库
第二种 :设用通讯录的Activity 并返回所选择的数据。
先实现第二种吧。、第二种相对简单,易操作、
你要操作 手机中的通讯录,就要有权限 的操作。
android 内核linux
1、要在工程中 AndroidManifest.xml 文件中添加操作权限
<!-- 读取联系人权限 --> <uses-permission android:name="android.permission.READ_CONTACTS" />
然后在你的activity 里面编写调用代码:
Intent intent = new Intent(); intent.setAction(Intent.ACTION_PICK); intent.setData(ContactsContract.Contacts.CONTENT_URI); startActivityForResult(intent, REQUEST_CONTACT);
重写 Activity 的 onActivityResult 方法:
//重写的结果返回方法 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case 1: if (data == null) { return; } Uri result = data.getData(); String contactId = result.getLastPathSegment(); String name = ""; String phone = ""; //得到名称 String[] projection = new String[] { People._ID, People.NAME ,People.NUMBER}; Cursor cursor = getContentResolver().query(People.CONTENT_URI, projection, // select sentence People._ID + " = ?", // where sentence new String[] { contactId }, // where values People.NAME); // order by if (cursor.moveToFirst()) { name = cursor.getString(cursor.getColumnIndex(People.NAME)); } //得到 电话 projection = new String[] { Contacts.Phones.PERSON_ID, Contacts.Phones.NUMBER}; cursor = getContentResolver().query(Contacts.Phones.CONTENT_URI, projection, // select sentence Contacts.Phones.PERSON_ID + " = ?", // where sentence new String[] { contactId }, // where values Contacts.Phones.NAME); // order by if (cursor.moveToFirst()) { phone = cursor.getString(cursor.getColumnIndex(Contacts.Phones.NUMBER)); } //显示 showPhone.setText(name+":"+phone); break; } }
就可以得到你选择的 联系的信息了。
下面来看一下我的例子和载图吧。 :
1、添加操作权限 AndroidManifest.xml
<!-- 读取联系人权限 --> <uses-permission android:name="android.permission.READ_CONTACTS" />
上面有载图自己看。
2、创建 layout 文件 get_phone_num.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" android:orientation="vertical" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="clickFun" android:text="得到电话号码" /> <TextView android:id="@+id/getPhoneNumTextId" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="电话号码" /> </LinearLayout>
一个button 一个view
3、创建Activity 类 GetPhoneNumActivity.java
package com.main; import android.app.Activity; import android.content.Intent; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.provider.ContactsContract; import android.provider.ContactsContract.PhoneLookup; import android.util.Log; import android.view.View; import android.widget.EditText; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.Toast; import com.main.db.FriendsDao; public class AddUserActivity extends Activity { private EditText name; private EditText phoneNum; private EditText birthday; private String sexText; private FriendsDao friendsDao; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.add_user); //得到页面控件 name=(EditText)findViewById(R.id.addUserTextName); phoneNum=(EditText)findViewById(R.id.addUserTextNum); birthday=(EditText)findViewById(R.id.addUserTextBirthday); RadioGroup sex=(RadioGroup)findViewById(R.id.addUserTextSex); sex.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { Log.d("test", "select radio " + sexText); sexText=((RadioButton)findViewById(checkedId)).getText().toString(); Log.d("test", "select radio " + sexText); } }); friendsDao=new FriendsDao(this,"ll1x.db",null,2); } public void addUserClick(View view){ int viewId=view.getId(); switch(viewId){ case R.id.addUserOkBut://确定 //验证 String name=this.name.getText().toString(); String phoneNum=this.phoneNum.getText().toString(); String birthday=this.birthday.getText().toString(); //提交 保存数据库 friendsDao.insertData(name, phoneNum,birthday,sexText); Log.d("test", "addUserClick " + name+"|"+phoneNum+"|"+birthday+"|"+sexText.toString()); break; case R.id.addUserNoBut://取消 break; case R.id.addUserFromTXId: Intent intent = new Intent(); intent.setAction(Intent.ACTION_PICK); intent.setData(ContactsContract.Contacts.CONTENT_URI); startActivityForResult(intent, 1); break; } } //重写的结果返回方法 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case 1: if (data == null) { return; } Uri result = data.getData(); String contactId = result.getLastPathSegment(); String name = ""; String phone = ""; //得到名称 String[] projection = new String[] { People._ID, People.NAME ,People.NUMBER}; Cursor cursor = getContentResolver().query(People.CONTENT_URI, projection, // select sentence People._ID + " = ?", // where sentence new String[] { contactId }, // where values People.NAME); // order by if (cursor.moveToFirst()) { name = cursor.getString(cursor.getColumnIndex(People.NAME)); } //得到 电话 projection = new String[] { Contacts.Phones.PERSON_ID, Contacts.Phones.NUMBER}; cursor = getContentResolver().query(Contacts.Phones.CONTENT_URI, projection, // select sentence Contacts.Phones.PERSON_ID + " = ?", // where sentence new String[] { contactId }, // where values Contacts.Phones.NAME); // order by if (cursor.moveToFirst()) { phone = cursor.getString(cursor.getColumnIndex(Contacts.Phones.NUMBER)); } //显示 showPhone.setText(name+":"+phone); break; } } }
运行载图:
资料:
http://hi.baidu.com/%C1%F5%D0%A1%C0%F61984519/blog/item/d58cc37b9aa1daf32e73b3ae.html
http://blog.sina.com.cn/s/blog_60a94ae70100vfrm.html
Android 通讯录学习笔记之——调用系统添加成员功能
就到这里,不懂Call 我。
ok 就到这里、
做了一下修改:
Phone 改成了 PhoneLookup
评论
1 楼
NN_iaoiao
2015-05-29
问一下 你的这个People 类 是自定义的还是android.provider.Contacts.People类 如果是自定义的 能发我People类一下吗 邮箱:cshangdic@163.com 谢谢了
发表评论
-
android手机控制家电
2012-11-29 14:43 1105android手机控制家电 北飘了许久,编写程序代码 ... -
Android Activity提供服务(被调用Activity 给调用Activity 反回数据)
2012-05-07 10:57 1568网上看了小例子、 现在自己整理一下子: ... -
android 选择本地图片并截剪图片保存到,sdcard指定目录中
2012-05-06 13:15 21875这里,要把选择 和 截剪后的图片存到sdcard 上的指 ... -
android ExpandableListView可扩展列表
2012-05-03 10:26 12406先看一效果图、 列表中要有 图片和文字: ... -
android 控件属性 116
2012-04-07 14:05 1193android:bufferType android:tex ... -
android 页面主题
2012-03-01 18:22 990http://blog.csdn.net/qjbagu/art ... -
Android TTS(Text To Speech)
2011-12-08 11:32 2058TTS(Text To Speech) And ... -
pocketsphinxAdroid离线语音识别---入门
2011-12-01 11:14 28346现在的语音识别大部分都是基于服务端的开发,需要网 ... -
Android NDK--(调用c c++ 库)
2011-11-15 18:08 2407NDK编程入门笔记 http://www.c ... -
I9008L 刷回原版.
2011-11-08 09:19 1978共享自:http://www.cnmo.com/ 手机中国 ... -
android 定制机删定制程序---
2011-11-02 18:02 1083分为步聚、、 一、root 权限: SuperOne ... -
Android的权限 permission
2011-10-31 09:58 1285出自:http://www.cnblogs.com/houfe ... -
分享 Android 识音识别 挺有想法的。
2011-10-27 13:52 951我本来也想做一个、刚看到这个视频 ... -
Android 教程例子列表
2011-05-19 09:20 2547Android Android视录视频示例 A ...
相关推荐
以下是对"Android获取联系人"这一主题的详细讲解。 首先,Android系统中的联系人数据存储在SQLite数据库中,开发者可以通过ContentProvider接口访问这些数据。ContactsContract类是Android提供的一个内容提供者...
在Android开发中,构建一个联系人列表是常见的需求,它涉及到UI设计、数据获取和处理等多个方面。本篇文章将深入探讨如何实现一个“Android电话联系人页面布局”以及相关的代码实现。 首先,我们需要理解Android的...
在Android中,获取系统联系人的过程涉及读取存储在设备上的联系人数据。这通常通过ContentResolver和ContactsContract类来完成。首先,ContentResolver是Android系统提供的接口,它负责与ContentProvider进行交互,...
以上就是Android获取通讯录联系人信息的基本流程。通过阅读提供的源码,开发者可以学习到如何实际应用这些步骤,并了解如何在自己的应用中整合这些功能。同时,了解Content Provider机制对于理解Android数据共享至关...
在Android和iOS等移动操作系统中,查看和获取联系人电话是一项常见的功能,广泛应用于社交应用、通讯工具和其他需要用户授权访问联系人信息的软件中。本文将深入探讨如何在这些平台上实现这一功能。 首先,我们从...
在这个项目中,我们将深入探讨如何在Android Studio中获取手机联系人,并执行发送短信、拨打电话以及对联系人进行增删改的操作。 首先,我们需要在AndroidManifest.xml文件中添加必要的权限声明,这是进行任何涉及...
在Android中,我们可以使用XML布局文件来定义UI元素,如ListView用于显示联系人列表,Checkbox用于选择要操作的联系人,以及Button来执行添加、删除、编辑等操作。在`res/layout`目录下,我们可以创建对应的XML布局...
总结来说,Android开发中获取手机通讯录和SIM卡联系人信息,以及调用拨号界面,主要是通过Content Resolver查询系统提供的Content Provider,同时需要正确配置权限。理解并熟练运用这些方法,可以帮助开发者构建更...
在Android开发中,获取手机通讯录联系人信息并实现点击直接拨打电话的功能是常见的需求,这对于构建各种社交、工具类应用至关重要。以下将详细介绍如何实现这个功能。 首先,要访问手机通讯录,我们需要请求读取...
- 查询联系人:使用`ContentResolver.query()`方法,指定`ContactsContract.CommonDataKinds.Phone.CONTENT_URI`作为查询的URI,可以获取电话号码、名字等信息。 - 处理查询结果:通过Cursor遍历查询结果,解析每...
在Android系统中,获取本机号码、联系人信息以及拨打电话是常见的功能需求,尤其是在开发与通讯相关的应用程序时。在Android 2.2(API级别8)版本中,这些功能的实现有一些特定的注意事项和权限要求。下面我们将详细...
这个项目,"基于android studio的读取联系人并可点击拨打电话",显然是一个教学或示例项目,它借鉴了郭霖的畅销书《第一行代码》中的方法。下面将详细讲解如何实现这一功能。 首先,我们需要了解Android的权限管理...
在Android平台上,获取联系人数据是一项常见的功能,尤其在开发类似QQ通讯录的应用时,我们需要高效、安全地访问用户手机中的联系人信息。本篇将详细介绍如何在Android中实现这一功能,以及如何创建一个仿QQ通讯录的...
在Android开发中,创建一个类似电话本的列表是常见的需求,这通常涉及到数据排序和自定义列表视图。本文将详细解析如何通过SortListView来实现这样一个功能,它是一个专为实现电话本效果而设计的控件。我们将深入...
在这个场景中,用户进入通讯录并选择一个联系人后立即返回,我们的应用需要能够捕获这一操作并获取选定联系人的姓名和电话号码。 在用户点击联系人后返回,我们可以重写onActivityResult()方法来处理返回的数据。这...
这个"Android 获取手机联系人并按字母排序,且可根据字母右侧A~Z检索"的项目,是一个适用于毕业设计学习的源码示例,它覆盖了Android开发中的多个关键知识点。以下将详细介绍这些技术要点: 1. **Android权限管理**...
在Android开发中,获取手机联系人列表并实现点击拨打电话的功能是一项常见的需求。这个功能可以应用于许多场景,比如社交应用、企业管理工具等。下面将详细解释如何实现这一功能。 首先,我们需要获取用户的权限。...
总的来说,实现“Android获取手机联系人及归属地”这一功能,需要理解Android的ContentProvider机制,掌握Volley网络请求库的使用,并且要注意权限管理和数据安全。这是一个典型的Android应用功能,常见于各种社交、...
在Android操作系统中,管理联系人是一项重要的任务,尤其是在用户导入大量数据或同步不同来源的联系人时,可能会出现重复的联系人条目。为了解决这个问题,我们可以开发一个"android合并重复联系人功能",这将极大地...
本示例项目“Android带索引联系人列表”旨在教你如何实现这样一个功能丰富的用户界面。下面我们将深入探讨实现这一功能的关键技术和步骤。 首先,我们从“索引”这个概念开始。在联系人列表中,索引通常表现为侧滑...