【发布时间】:2017-03-22 04:06:08
【问题描述】:
当联系人有连接时,例如 Whatsapp 或 Skype,而该联系人没有照片,就会出现 Whatsapp 或 Skype 照片。
如果联系人照片没有照片,如何获取联系人照片?
public byte[] getPhoto(String contactId) {
Uri contactUri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, Long.valueOf(contactId));
Uri photoUri = Uri.withAppendedPath(contactUri, ContactsContract.Contacts.Photo.CONTENT_DIRECTORY);
try
{
Cursor c = getContentResolver().query(photoUri,
new String[] {ContactsContract.Contacts.Photo.PHOTO}, null, null, null);
try {
if (c.moveToFirst()) {
final byte[] image = c.getBlob(0);
final Bitmap bitmap = BitmapFactory.decodeByteArray(image, 0, image.length);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
return stream.toByteArray();
}
}
catch (Exception e) {
e.printStackTrace();
}
finally {
c.close();
}
} catch (Exception e) {
e.printStackTrace();
}
return new byte[0];
}
已解决
此方法可以正常工作。问题出在程序的另一部分。很抱歉给您带来不便,谢谢大家。
【问题讨论】:
-
the Whatsapp or Skype photo appears它出现在哪里?在联系人应用程序中?如果是这样,那么联系人确实有照片... -
是的,在联系人应用程序中。联系人没有照片,但出现连接时,会显示连接的照片,例如 Skype 用户照片。通过API的代码,我恢复了联系人照片,但是API没有恢复只有连接照片时出现的照片。
-
联系人应用程序中出现的任何照片都应该可以通过 API 访问,发布您正在使用的代码以获取联系人照片