Uri*_*Uri 4 java android android-contacts
我有这个版本适用于Android 4(String email是一个Gmail地址):
private Uri getPhotoUriFromEmail(String email) {
Uri u = null;
String[] projection = { ContactsContract.CommonDataKinds.Email.PHOTO_URI };
String photoUri;
ContentResolver cr = context.getContentResolver();
Cursor emailCur = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, projection,
ContactsContract.CommonDataKinds.Email.ADDRESS + " = ?",
new String[]{email}, null);
if (emailCur.moveToNext()) {
photoUri = emailCur.getString(
emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.PHOTO_URI));
u = Uri.parse(photoUri);
}
return u;
}
Run Code Online (Sandbox Code Playgroud)
什么是2.3.6版本?(当我将API 8设置为我的最小API支持时,Android SDK也不应该警告我使用API 11吗?因为它没有...)
你可以不用ContactsContract.CommonDataKinds.Email.PHOTO_URI 这种方式获得联系人照片uri :
private Uri getPhotoUriFromEmail(String email) {
Uri u = null;
String[] projection = { ContactsContract.CommonDataKinds.Photo.CONTACT_ID };
String photoUri;
ContentResolver cr = getContentResolver();
Cursor emailCur = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,
projection,
ContactsContract.CommonDataKinds.Email.ADDRESS + " = ?",
new String[]{email}, null);
if (emailCur.moveToNext()) {
int columnIndex = emailCur.getColumnIndex(
ContactsContract.CommonDataKinds.Photo.CONTACT_ID);
long contactId = emailCur.getLong(columnIndex);
u = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI,
contactId);
u = Uri.withAppendedPath(u,
ContactsContract.Contacts.Photo.CONTENT_DIRECTORY);
}
return u;
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以通过ContactsContract.Contacts .openContactPhotoInputStream(ContentResolver, Uri)以下方式获取照片流:
private InputStream getPhotoInputStreamFromEmail(String email) {
Uri u = null;
String[] projection = { ContactsContract.CommonDataKinds.Photo.CONTACT_ID };
String photoUri;
ContentResolver cr = getContentResolver();
Cursor emailCur = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,
projection,
ContactsContract.CommonDataKinds.Email.ADDRESS + " = ?",
new String[]{email}, null);
if (emailCur.moveToNext()) {
int columnIndex = emailCur.getColumnIndex(
ContactsContract.CommonDataKinds.Photo.CONTACT_ID);
long contactId = emailCur.getLong(columnIndex);
u = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI,
contactId);
return ContactsContract.Contacts.openContactPhotoInputStream(cr, u);
}
return null;
}
Run Code Online (Sandbox Code Playgroud)