[自学Android之旅] 获取通讯录的联系人 姓名和号码
2015-05-27 16:01
204 查看
获取系统的人系人的信息 [姓名和电话号码] 然后将联系人的信息返回到 程序上来
分析 : 在布局中需要的控件 EditText ,和Button EditText来存放返回的联系人信息 Button用来进入通讯录的
接着是对主代码的编写
因为是获取系统的联系人的信息,需要系统权限,所以配置其系统权限为
这样一个简单的获取联系人的小程序就完成了
》 run->as
源代码可以下载
http://download.csdn.net/detail/xunzi229/8744931
分析 : 在布局中需要的控件 EditText ,和Button EditText来存放返回的联系人信息 Button用来进入通讯录的
<EditText android:id="@+id/tel_show" android:layout_width="match_parent" android:layout_height="wrap_content" android:editable="false" android:cursorVisible="false" /> <EditText android:id="@+id/tel_phone" android:layout_width="match_parent" android:layout_height="wrap_content" android:editable="false" android:cursorVisible="false"/> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/look_contacts"/>
接着是对主代码的编写
public class MainActivity extends Activity { final int PICK_CONTACT = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button bn = (Button) findViewById(R.id.button); //为控件绑定一个监控,当点击控件的时候,就会进入系统的通讯录中 bn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(); intent.setAction(Intent.ACTION_GET_CONTENT); intent.setType("vnd.android.cursor.item/phone"); //用来打开一个新的Activity,新的Activity关闭后会给前一个Activity返回数据 startActivityForResult(intent, PICK_CONTACT); } }); } //为了获取数数据,需要重写onActivityResult(),这个方法接收三个参数,一个是请求吗,第二个是返回码,第三个是数据 @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch(requestCode) { case (PICK_CONTACT) : if (resultCode == Activity.RESULT_OK) { //获取返回的数据 Uri contactData = data.getData(); CursorLoader contactLoader = new CursorLoader(this,contactData, null,null,null,null); //查询联系人信息 Cursor cursor = contactLoader.loadInBackground(); //如果查询到指定的联系人 if(cursor.moveToFirst()) { String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); //获取联系人的名字 String name = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME)); String phoneNumber = "次联系人暂未建立号码"; //根据联系人查询该联系人的详细信息 Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds. Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = " +contactId,null,null); if(phones.moveToFirst()) { 取出号码 phoneNumber = phones .getString(phones .getColumnIndex(ContactsContract .CommonDataKinds.Phone.NUMBER )); } //关闭游标 phones.close(); EditText show = (EditText) findViewById(R.id.tel_show); //显示联系人姓名 show.setText(name); EditText phone = (EditText) findViewById(R.id.tel_phone); //显示联系人的电话号码 phone.setText(phoneNumber); } //关闭游标 cursor.close(); } break; } };
因为是获取系统的联系人的信息,需要系统权限,所以配置其系统权限为
<uses-permission android:name="android.permission.READ_CONTACTS"/>
这样一个简单的获取联系人的小程序就完成了
》 run->as
源代码可以下载
http://download.csdn.net/detail/xunzi229/8744931
相关文章推荐
- android:获取手机号码和姓名实现通讯录
- Android开发之contentprovider获取手机所有联系人(姓名、号码、邮箱)
- Android 获取手机通讯录信息 — 姓名和号码
- android:获取手机号码和姓名实现通讯录
- Android 获取联系人手机号码、姓名、地址、公司、邮箱、生日
- 【android】通过号码获取联系人姓名
- Android实现通讯录效果――获取手机号码和姓名
- Android通讯录模糊查询搜索(号码,姓名,首字母简拼,全拼),批量选取联系人
- Android通讯录模糊查询搜索(号码,姓名,首字母简拼,全拼),批量选取联系人
- 通过联系人号码获取联系人的姓名(android开发)
- Android 获取联系人手机号码、姓名、地址、公司、邮箱、生日
- android:获取手机号码和姓名实现通讯录
- android 获取联系人的姓名和电话,无法获取电话
- Android获取本地通讯录发生变化的联系人
- Android 通讯录 数据库的结构以及获取联系人方式
- Android开发_读取联系人信息_读取通讯录号码
- Android跳转到通讯录获取用户名称和手机号码的实现思路
- android获取手机通讯录联系人
- 【实用篇】获取Android通讯录中联系人信息
- Android软件开发之获取通讯录联系人信息