我是 android 的初学者,我正在构建一个应用程序,当用户按下按钮时,会显示存储在手机中的联系人。当他从中选择一个联系人时,我必须获取选定的联系人姓名和号码。我尝试使用代码,但只显示所选联系人的姓名,而不显示电话号码。
public void readcontact(){
try {
Intent intent = new Intent(Intent.ACTION_PICK, Uri.parse("content://contacts/people"));
startActivityForResult(intent, PICK_CONTACT);
} catch (Exception e) {
e.printStackTrace();
}
}
public void onActivityResult(int reqCode, int resultCode, Intent data) {
super.onActivityResult(reqCode, resultCode, data);
switch (reqCode) {
case (PICK_CONTACT) :
if (resultCode == Activity.RESULT_OK) {
Uri contactData = data.getData();
Cursor c = managedQuery(contactData, null, null, null, null);
startManagingCursor(c);
if (c.moveToFirst()) {
String name = c.getString(c.getColumnIndexOrThrow(People.NAME));
String number = c.getString(c.getColumnIndexOrThrow(People.NUMBER));
perrsonname.setText(name);
Toast.makeText(this, name + " has number " + number, Toast.LENGTH_LONG).show();
}
}
break;
}
}
我什至需要所选联系人的附加号码(家庭、办公室等), 谁能帮我解决这个问题。对此的建议很可观。
最佳答案
public void readcontact(){
try {
Intent contactPickerIntent = new Intent(Intent.ACTION_PICK,
PhoneLookup.CONTENT_FILTER_URI); // creates the contact list intent
contactPickerIntent.setType(Contacts.Phones.CONTENT_TYPE); // selects contacts with phone only
startActivityForResult(contactPickerIntent, PICK_CONTACT);
} catch (Exception e) {
e.printStackTrace();
}
}
public void onActivityResult(int reqCode, int resultCode, Intent data) {
super.onActivityResult(reqCode, resultCode, data);
switch (reqCode) {
case (PICK_CONTACT) :
if (resultCode == Activity.RESULT_OK) {
Uri contactData = data.getData(); // has the uri for picked contact
Cursor c = getContentResolver().query(contactData, null, null, null, null); // creates the contact cursor with the returned uri
if (c.moveToFirst()) {
String name = c.getString(c.getColumnIndex(PhoneLookup.DISPLAY_NAME));
String number = c.getString(c.getColumnIndex(PhoneLookup.NUMBER));
Toast.makeText(this, name + " has number " + number, Toast.LENGTH_LONG).show();
}
}
break;
}
}
关于android - 在 Android 中,如何选择联系人并将其显示在我的应用程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3830184/