gpt4 book ai didi

android - 如何获取联系人照片 URI

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:55:04 27 4
gpt4 key购买 nike

我正在使用 Android Contact ContentProvider。我有一个电话号码,我需要获取与此电话号码关联的联系人的照片URI。我该怎么做???

我知道我可以获得照片的原始数据并构建一个InputStream,但我不需要输入流,我需要URI.

编辑:最初我使用以下代码来获取联系信息

    Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phoneNo));
Cursor cursor = context.getContentResolver().query(uri, details, null, null, null);

最佳答案

要使用电话号码获取联系人 ID,请使用以下代码:

import android.provider.ContactsContract.PhoneLookup;

public String fetchContactIdFromPhoneNumber(String phoneNumber) {
Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI,
Uri.encode(phoneNumber));
Cursor cursor = this.getContentResolver().query(uri,
new String[] { PhoneLookup.DISPLAY_NAME, PhoneLookup._ID },
null, null, null);

String contactId = "";

if (cursor.moveToFirst()) {
do {
contactId = cursor.getString(cursor
.getColumnIndex(PhoneLookup._ID));
} while (cursor.moveToNext());
}

return contactId;
}

并使用获取的联系人 ID 获取联系人照片 URI。使用以下代码获取照片 URI:

import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds.Phone;

public Uri getPhotoUri(long contactId) {
ContentResolver contentResolver = getContentResolver();

try {
Cursor cursor = contentResolver
.query(ContactsContract.Data.CONTENT_URI,
null,
ContactsContract.Data.CONTACT_ID
+ "="
+ contactId
+ " AND "

+ ContactsContract.Data.MIMETYPE
+ "='"
+ ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE
+ "'", null, null);

if (cursor != null) {
if (!cursor.moveToFirst()) {
return null; // no photo
}
} else {
return null; // error in cursor process
}

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

Uri person = ContentUris.withAppendedId(
ContactsContract.Contacts.CONTENT_URI, contactId);
return Uri.withAppendedPath(person,
ContactsContract.Contacts.Photo.CONTENT_DIRECTORY);
}

希望这会有所帮助。

关于android - 如何获取联系人照片 URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7738192/

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