gpt4 book ai didi

java - Android 手机联系人仅包含照片、电话和姓名

转载 作者:行者123 更新时间:2023-12-01 13:17:12 24 4
gpt4 key购买 nike

我使用以下光标仅检索手机中的联系人?不过,该代码可以为我提供 SIM 卡和手机中的联系人信息。是否可以仅在手机中获取联系人及其照片(如果有)、电话号码和显示名称?

  cursor = getContentResolver().query(Phone.CONTENT_URI, null, null, null, null);

int contactIdIdx = cursor.getColumnIndex(Phone._ID);
int nameIdx = cursor.getColumnIndex(Phone.DISPLAY_NAME);
int phoneNumberIdx = cursor.getColumnIndex(Phone.NUMBER);
int photoIdIdx = cursor.getColumnIndex(Phone.PHOTO_ID);
cursor.moveToFirst();

do {

try {

Contact c = new Contact();

String idContact = cursor.getString(contactIdIdx);
String name = cursor.getString(nameIdx);
c.setName(name);

Log.i(TAG,storage.getDriveName()+": "+name);
String phoneNumber = cursor.getString(phoneNumberIdx);
Log.i(TAG,storage.getDriveName()+": "+phoneNumber);
c.setPhoneNumber(phoneNumber);
if(phoneNumber != null)
c.setPhotoUri(getPhotoUri(Long.valueOf(fetchContactIdFromPhoneNumber(phoneNumber))));

contacts.add(cbd);
} catch(Exception e) {
Log.e(TAG,storage.getDriveName()+": "+e.getMessage());
}
} while (cursor.moveToNext());
} catch (Exception e) {
Log.e(TAG,storage.getDriveName()+": "+e.getMessage());

}
if (cursor != null) {
cursor.close();
}
}

最佳答案

我已经实现了下面的代码,对我有用,请检查一下:

Intent contactPickerIntent = new Intent(Intent.ACTION_PICK,
ContactsContract.Contacts.CONTENT_URI);
// filters contact with phone numbers
contactPickerIntent
.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
startActivityForResult(contactPickerIntent, CONTACT_PICKER);

现在在 Activity 结果中:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
AndyUtills.removeSimpleProgressDialog();

if (resultCode == RESULT_OK) {
switch (requestCode) {
case CONTACT_PICKER:
Cursor cursor = null;
Bitmap bitmap = null;

Uri result = data.getData();
// String id = result.getLastPathSegment();

cursor = getContentResolver().query(result, null, null, null,
null);
// String contactId=cursor.get;
if (cursor == null) {

AndyUtills.showToast("Selection Fail", this);
return;
}
if (!cursor.moveToFirst()) {

cursor.close();
AndyUtills.showToast("Selection Fail", this);
return;
}
String contactName = cursor
.getString(cursor
.getColumnIndex((ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)
.toString().trim()));
String contactNumber = cursor
.getString(cursor
.getColumnIndex((ContactsContract.CommonDataKinds.Phone.NUMBER)));

// check for contact whether it is already inserted or not
if (checkForSameNumber(contactNumber)) {
AndyUtills.showToast("Same contact is already inserted",
this);
return;
}
String photo = null;

// get photo uri from contacts
try {

photo = cursor
.getString(cursor
.getColumnIndex(ContactsContract.CommonDataKinds.Contactables.PHOTO_URI));
Log.i("TAG", "Activity Result: Old:" + photo);

} catch (Exception e) {
e.printStackTrace();

}

cursor.close();
break;

}

} else {
// gracefully handle failure
Log.w("Auto Respond", "Warning: activity result not ok");
}
}

希望你能得到你想要的一切。

关于java - Android 手机联系人仅包含照片、电话和姓名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22371989/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com