您的位置:首页 > 移动开发 > Android开发

在android中使用Provider.Contact来取得联系人的资料

2012-07-28 11:35 483 查看
程序简介:设置一个Button,在onClick()事件驱动后,调用手机内置的通讯录界面,并在选择联系人之后,返回自己的Activity。取得联系人的名字和电话号码放入两个EditText中。

程序如下所示:

import android.app.Activity;

import android.content.Intent;

import android.database.Cursor;

import android.graphics.Color;

import android.net.Uri;

import android.os.Bundle;

import android.provider.Contacts;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

@SuppressWarnings("deprecation")

public class A08Activity extends Activity {

EditText et01,et02;

Button b;

TextView tv;

//定义一个静态常数作为判断数据返回给主Activity使用

public static final int PICK_CONTACT_SUBACTIVITY=2;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

b=(Button)findViewById(R.id.button);

b.setText("查询联系人资料");

b.setBackgroundColor(Color.GREEN);

et01=(EditText)findViewById(R.id.et01);

et02=(EditText)findViewById(R.id.et02);

et01.setBackgroundColor(Color.YELLOW);

et02.setBackgroundColor(Color.YELLOW);

et01.setTextColor(Color.RED);

et02.setTextColor(Color.RED);

b.setOnClickListener(new OnClickListener(){

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

//将联系人的资源位置作为参数传入Uri中

Uri uri=Uri.parse("content://contacts/people");

//将Intent.ACTION_PICK常数和Uri对象传入

Intent i=new Intent(Intent.ACTION_PICK,uri);

//打开新的Activity

startActivityForResult(i,PICK_CONTACT_SUBACTIVITY);

}

});

}

public void onActivityResult(int requestCode,int resultCode,Intent data){

switch(requestCode){

case PICK_CONTACT_SUBACTIVITY:

final Uri uriRet=data.getData();

if(uriRet!=null){

try {

//通过Cursor访问联系人的资料

Cursor c=managedQuery(uriRet,null,null,null,null);

// 将Cursor移到数据最前端

c.moveToFirst();

String name=c.getString(c.getColumnIndexOrThrow(Contacts.People.NAME));

String number=c.getString(c.getColumnIndexOrThrow(Contacts.People.NUMBER));

et01.setText(name);

et02.setText(number);

} catch (IllegalArgumentException e) {

tv.setText(e.toString());

e.printStackTrace();

}

}

break;

}

super.onActivityResult(requestCode, resultCode, data);

}

}

注意:本程序还需要添加android.permission.READ_CONTACTS权限。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: