Java 获取联系人姓名?
我想知道联系人的名字,但我不能。在查看之后,我尝试使用family、given和display来获取名称,但没有任何效果Java 获取联系人姓名?,java,android,xml,database,android-intent,Java,Android,Xml,Database,Android Intent,我想知道联系人的名字,但我不能。在查看之后,我尝试使用family、given和display来获取名称,但没有任何效果 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == PICK_CONTACT && resultCode == RESULT_OK) { Uri
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == PICK_CONTACT && resultCode == RESULT_OK) {
Uri contactUri = data.getData();
Cursor cursor = getContentResolver().query(contactUri, null, null, null, null);
cursor.moveToFirst(); //Move to first row...I actually dont know why this part is necessary, but I get an error without it...
int NumberColumn = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER); //Int column is the column of the numbers
int NameColumn = cursor.getColumnIndex(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME);
String contactNumber = cursor.getString(NumberColumn);
String contactName = cursor.getString(NameColumn);
Toast.makeText(MainActivity.this, ""+ contactNumber +"" +contactName, Toast.LENGTH_SHORT).show();
}
/
请尝试以下代码以获取特定号码的联系人
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_PICK_CONTACTS && resultCode == RESULT_OK) {
Log.d(TAG, "Response: " + data.toString());
uriContact = data.getData();
retrieveContactName();
}
}
private void retrieveContactName() {
String contactName = null;
// querying contact data store
Cursor cursor = getContentResolver().query(uriContact, null, null, null, null);
if (cursor.moveToFirst()) {
// DISPLAY_NAME = The display name for the contact.
// HAS_PHONE_NUMBER = An indicator of whether this contact has at least one phone number.
contactName = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
}
cursor.close();
Log.d(TAG, "Contact Name: " + contactName);
}
有关更多详细信息,请参阅下面的链接尝试下面的代码以获取特定号码的联系人
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_PICK_CONTACTS && resultCode == RESULT_OK) {
Log.d(TAG, "Response: " + data.toString());
uriContact = data.getData();
retrieveContactName();
}
}
private void retrieveContactName() {
String contactName = null;
// querying contact data store
Cursor cursor = getContentResolver().query(uriContact, null, null, null, null);
if (cursor.moveToFirst()) {
// DISPLAY_NAME = The display name for the contact.
// HAS_PHONE_NUMBER = An indicator of whether this contact has at least one phone number.
contactName = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
}
cursor.close();
Log.d(TAG, "Contact Name: " + contactName);
}
更多详细信息请参阅下面的链接为什么
if(cursor.moveToFirst()){
?谢谢]我想我们只有一个条目,这就是为什么我们使用cursor movetofirst。首先,它将检查cursor是否为空,如果不是,它将返回数据。您是否能够获取电话号码名称?否,因为它与我在问题中提供的代码相同。是否检查号码是否有名称?为什么如果(cursor.movetofirst()){
?谢谢]我想我们只有一个条目,这就是为什么我们使用游标movetofirst。首先,它将检查游标是否为空,如果不是,它将返回数据。您是否能够获取电话号码名称?否,因为它与我在问题中提供的代码相同。是否检查号码是否有名称?