获取Android中RawContact照片的URI
作者:互联网
我知道我可以使用以下方式获取联系人照片的URI:
Uri person = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId);
Uri photoUri = Uri.withAppendedPath(person, Contacts.Photo.CONTENT_DIRECTORY);
有没有办法对RawContact做同样的事情?
我试过了:
Uri person = ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactId);
Uri photoUri = Uri.withAppendedPath(person, Contacts.Photo.CONTENT_DIRECTORY);
但它不起作用……
我需要一个URI而不是实际blob的原因是因为代码在AppWidget中,并且在将数据从窗口小部件传递到启动器时似乎存在一些非常严格的限制,所以我需要使用setImageViewUri而不是setImageViewBitmap.
谢谢.
解决方法:
这是您的问题的解决方案. Solution
我也有同样的问题,在挖掘并阅读Android的源代码后,我得到了它.现在可能已经很晚了(对你来说),但无论如何它都在这里.
public InputStream getBitmapFromUri(String rawContactId) throws FileNotFoundException {
final Uri photoUri = Uri.withAppendedPath(
ContentUris.withAppendedId(RawContacts.CONTENT_URI, Long.valueOf(rawContactId)), RawContacts.DisplayPhoto.CONTENT_DIRECTORY);
final InputStream imageStream = contentResolver.openInputStream(photoUri);
return imageStream;
}
标签:android,photos,rawcontacts 来源: https://codeday.me/bug/20190630/1338330.html