import android.app.Activity;
import android.content.ContentResolver;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Contacts;
import android.provider.ContactsContract;
import android.provider.ContactsContract.PhoneLookup;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
import android.content.ContentResolver;
public class Sample5_7_Activity extends Activity {
private Button bSearch;//搜索按钮
private static final int COUNT=0;
String lxrName ;
String lxrPhoneNumber;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
bSearch=(Button)this.findViewById(R.id.Button01);//按钮对象
bSearch.setOnClickListener
(
new OnClickListener()
{
@Override
public void onClick(View v) {
Uri uri=Uri.parse("content://contacts/people");//创建Uri对象取得联系人的资源位置
Intent intent=new Intent(Intent.ACTION_PICK,uri);//创建Intent对象,并将取得的值返回
startActivityForResult(intent,COUNT);//打开新的Activity,并获取返回值
}
}
);
}
@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data)
{
switch(requestCode)
{
case 0:
final Uri uri=data.getData();
if(uri!=null)
{
try
{
ContentResolver cr = getContentResolver();
Cursor cursor=managedQuery(uri,null,null,null,null);//获取联系人信息
while(cursor.moveToNext())
{
//取得联系人名字
int nameFieldColumnIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);
lxrName = cursor.getString(nameFieldColumnIndex);
//取得电话号码
String ContactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + ContactId, null, null);
while(phone.moveToNext())
{
lxrPhoneNumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
//tring += (contact + ":" + PhoneNumber + "\n");
}
}
Toast.makeText(
Sample5_7_Activity.this,
"你所查询的联系人姓名为:"+ lxrName +",电话为:"+ lxrPhoneNumber,
Toast.LENGTH_SHORT
).show();
cursor.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
break;
}
super.onActivityResult(requestCode, resultCode, data);
}
import android.content.ContentResolver;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Contacts;
import android.provider.ContactsContract;
import android.provider.ContactsContract.PhoneLookup;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
import android.content.ContentResolver;
public class Sample5_7_Activity extends Activity {
private Button bSearch;//搜索按钮
private static final int COUNT=0;
String lxrName ;
String lxrPhoneNumber;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
bSearch=(Button)this.findViewById(R.id.Button01);//按钮对象
bSearch.setOnClickListener
(
new OnClickListener()
{
@Override
public void onClick(View v) {
Uri uri=Uri.parse("content://contacts/people");//创建Uri对象取得联系人的资源位置
Intent intent=new Intent(Intent.ACTION_PICK,uri);//创建Intent对象,并将取得的值返回
startActivityForResult(intent,COUNT);//打开新的Activity,并获取返回值
}
}
);
}
@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data)
{
switch(requestCode)
{
case 0:
final Uri uri=data.getData();
if(uri!=null)
{
try
{
ContentResolver cr = getContentResolver();
Cursor cursor=managedQuery(uri,null,null,null,null);//获取联系人信息
while(cursor.moveToNext())
{
//取得联系人名字
int nameFieldColumnIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);
lxrName = cursor.getString(nameFieldColumnIndex);
//取得电话号码
String ContactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + ContactId, null, null);
while(phone.moveToNext())
{
lxrPhoneNumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
//tring += (contact + ":" + PhoneNumber + "\n");
}
}
Toast.makeText(
Sample5_7_Activity.this,
"你所查询的联系人姓名为:"+ lxrName +",电话为:"+ lxrPhoneNumber,
Toast.LENGTH_SHORT
).show();
cursor.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
break;
}
super.onActivityResult(requestCode, resultCode, data);
}
}
PS:4.0上面已经不能使用。
int numberFieldColumnIndex = cursor.getColumnIndex(PhoneLookup.NUMBER);
String number = cursor.getString(numberFieldColumnIndex);