Android中如何取得联系人,如何得到一个联系人下面的多个号码
来源:互联网 发布:澳洲甲级联赛角球数据 编辑:程序博客网 时间:2024/05/16 15:05
1、Content Provider是Android提供的一个供Android多个应用程序数据共享的技术
2、Andriod系统自带联系人(Contacts)软件,如何在自定义系统中调用Contacts中的联系人,以及如何处理一个联系人下面的多个号码
main.xml:仅显示按钮
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Click Me"></Button>
</LinearLayout>
Java代码
package yyl.contentprovider;
import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class ContentProviderDemo extends Activity {
//定义变量
private Button button = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//根据控件Id得到控件对象
button = (Button) findViewById(R.id.button);
//给按钮控件添加单击事件监听器
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//调用显示联系人方法
printContacts();
}
});
}
/*
* 自定义显示Contacts提供的联系人的方法
*/
public void printContacts() {
//生成ContentResolver对象
ContentResolver contentResolver = getContentResolver();
// 获得所有的联系人
/*Cursor cursor = contentResolver.query(
ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
*/
//这段代码和上面代码是等价的,使用两种方式获得联系人的Uri
Cursor cursor = contentResolver.query(Uri.parse("content://com.android.contacts/contacts"),null,null,null,null);
// 循环遍历
if (cursor.moveToFirst()) {
int idColumn = cursor.getColumnIndex(ContactsContract.Contacts._ID);
int displayNameColumn = cursor
.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
do {
// 获得联系人的ID
String contactId = cursor.getString(idColumn);
// 获得联系人姓名
String displayName = cursor.getString(displayNameColumn);
//使用Toast技术显示获得的联系人信息
Toast.makeText(ContentProviderDemo.this, "联系人姓名:" + displayName,Toast.LENGTH_LONG).show();
// 查看联系人有多少个号码,如果没有号码,返回0
int phoneCount = cursor
.getInt(cursor
.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
if (phoneCount > 0) {
// 获得联系人的电话号码列表
Cursor phoneCursor = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+ "=" + contactId, null, null);
if(phoneCursor.moveToFirst())
{
do
{
//遍历所有的联系人下面所有的电话号码
String phoneNumber = phoneCursor.getString(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
//使用Toast技术显示获得的号码
Toast.makeText(ContentProviderDemo.this, "联系人电话:"+phoneNumber,Toast.LENGTH_LONG).show();
}while(phoneCursor.moveToNext());
}
}
} while (cursor.moveToNext());
}
}
}
- Android中如何取得联系人,如何得到一个联系人下面的多个号码
- iOS 通讯录操作 删除联系人 以及联系人多个号码 如何删除其中一个号码
- 获取电话薄联系人,一个联系人的多个号码
- android中如何取得用户手机的常用联系人(即收藏夹的联系人)
- Android联系人号码中横线的去除
- iOS 通讯录操作 删除联系人 以及联系人多个号码 删除其中一个号码
- 根据号码取得联系人姓名
- Android 为同一个联系人添加多个号码
- 解决:People下面选择分享可见联系人,选择多个联系人后通过短信分享,短信中只显示一个联系人
- Android中获取联系人的名字和号码
- 通过联系人号码获取联系人的姓名(android开发)
- Android读取联系人的姓名及号码
- android如何获取手机联系人的数据库
- 得到手机内的(包名类名,联系人名称号码)
- [Android] 如何取得版本号码
- android 取得系统联系人的头像
- android 联系人获取号码类型
- android 联系人获取号码类型
- Mainsoft的Grasshopper让你可以使用C#编写Java可以调用的类库(免费了!)
- 函数指针
- 常用的计算机英语(全集)
- 支持通用框架的threadpool代码
- 我的“云”应用体验
- Android中如何取得联系人,如何得到一个联系人下面的多个号码
- html页面重组技术
- Servlet_JSP深入详解_基于Tomcat的Web开发(笔记)
- ubuntu10.04安装virtualbox虚拟机
- Android下Content Provider使用
- WER
- dos命令
- 由SWT.getPlatform()想到的
- Baby -- justin bieber