- 浏览: 694179 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 1024android手机控制家电 北飘了许久,编写程序代码 ... -
Android Activity提供服务(被调用Activity 给调用Activity 反回数据)
2012-05-07 10:57 1505网上看了小例子、 现在自己整理一下子: ... -
android 选择本地图片并截剪图片保存到,sdcard指定目录中
2012-05-06 13:15 21807这里,要把选择 和 截剪后的图片存到sdcard 上的指 ... -
android ExpandableListView可扩展列表
2012-05-03 10:26 12304先看一效果图、 列表中要有 图片和文字: ... -
android 控件属性 116
2012-04-07 14:05 1157android:bufferType android:tex ... -
android 页面主题
2012-03-01 18:22 956http://blog.csdn.net/qjbagu/art ... -
Android TTS(Text To Speech)
2011-12-08 11:32 1986TTS(Text To Speech) And ... -
pocketsphinxAdroid离线语音识别---入门
2011-12-01 11:14 28185现在的语音识别大部分都是基于服务端的开发,需要网 ... -
Android NDK--(调用c c++ 库)
2011-11-15 18:08 2311NDK编程入门笔记 http://www.c ... -
I9008L 刷回原版.
2011-11-08 09:19 1940共享自:http://www.cnmo.com/ 手机中国 ... -
android 定制机删定制程序---
2011-11-02 18:02 1006分为步聚、、 一、root 权限: SuperOne ... -
Android的权限 permission
2011-10-31 09:58 1238出自:http://www.cnblogs.com/houfe ... -
分享 Android 识音识别 挺有想法的。
2011-10-27 13:52 912我本来也想做一个、刚看到这个视频 ... -
Android 教程例子列表
2011-05-19 09:20 2434Android Android视录视频示例 A ...
相关推荐
主要介绍了Android获取手机通讯录、sim卡联系人及调用拨号界面方法,本文分别给出实现代码实现获取通讯录和sim卡的联系人,以及权限配置和调用系统拨打电话的界面的实现代码,需要的朋友可以参考下
用于android2.2 用eclipse调试,获取本机号码的话,非移动用户可以获得,移动用户获取不到,可以获取本机联系人信息,并拨打其电话
实现了获取手机里联系人数据功能 及 获取电话本 显示出所有联系人的姓名和电话 点击一个联系人信息 可以拨号
通过contentprovider提供的uri查询手机电话簿的联系人信息,包括姓名,电话,头像(获取的是本机保存的联系人信息,没有获取SIM卡里面联系人的信息)
附件中是通过蓝牙读取终端设备通讯录、通话记录等所需要的PBAP、Vcard、JavaOBEX源码文件,只需导入到相应的工程里即可使用。
所有的通话记录保存在contacts2.db数据库文件的calls表中,本代码将calls表中的电话号显示在ListView控件中。 (4)send_sms_activity通过系统程序发送短信 (5)send_sms通过SmsManager类直接发送短信 (6)save...
本篇文档主要记录一下获取联系人的电话号码的一种方式。 1、选择联系人 ............ //构造一个隐式的Intent,拉起联系人界面 final Intent pickIntent = new Intent(Intent.ACTION_PICK, ContactsContract....
Google定义了一批intents(如:打电话啊,联系人清单上选择一个联系人,打开浏览器,电池更换的时候提供提示,等等。但是任何程序可以自由定义额外的intents和content-providers。我们可以很容易的联想到独立开发的...
android获取手机通话记录,实现电话拨打和短信发送
Android 进一步推进了 " 随时随地为每个人提供信息 " 这一企 业 目标的实现。 � Open Handset Alliance 汇集了多家业界巨头。运营商如: China Mobile 、 NTT DoCoMo 、 Vodafone 、 T-M obile 等;设备制造商如 ...
6.3 群发拜年短信给联系人 309 6.4 开始与停止系统服务 312 6.5 通过短信发送e-mail通知 316 6.6 手机拨接状态 321 6.7 有来电,发送邮件通知 324 6.8 存储卡剩余多少容量 326 6.9 访问本机内存...
完整的手机数据存取功能:铃声模式设置、震动控制、WiFi服务、屏幕旋转、电池计量、温度测量、电信网络信息、SIM卡信息、拨打电话、短信解析、通讯录联系人、电子罗盘、屏幕手写等手机控制功能。 系统服务及研发的...
里面涉及到执行Root命令、获取Android开机启动列表、启用主Activity,开启开机自动运行、禁用360进程与服务、动态创建一个优先级最高的短信广播接收者、动态创建一个关机广播接收者。以下分别说明三者的实现: 短信...
联系人 355 9.2.2 使用ContentProvider管理 多媒体内容 360 9.3 实现ContentProvider 364 9.3.1 创建ContentProvider的步骤 364 9.4 监听ContentProvider的数据 改变 370 9.4.1 ContentObserver简介...
完整的手机数据存取功能:铃声模式设置、震动控制、WiFi服务、屏幕旋转、电池计量、温度测量、电信网络信息、SIM卡信息、拨打电话、短信解析、通讯录联系人、电子罗盘、屏幕手写等手机控制功能。 系统服务及研发的...
完整的手机数据存取功能:铃声模式设置、震动控制、WiFi服务、屏幕旋转、电池计量、温度测量、电信网络信息、SIM卡信息、拨打电话、短信解析、通讯录联系人、电子罗盘、屏幕手写等手机控制功能。 系统服务及研发的...
完整的手机数据存取功能:铃声模式设置、震动控制、WiFi服务、屏幕旋转、电池计量、温度测量、电信网络信息、SIM卡信息、拨打电话、短信解析、通讯录联系人、电子罗盘、屏幕手写等手机控制功能。 系统服务及研发的...