【发布时间】:2011-11-30 19:40:14
【问题描述】:
我正在修改我的应用程序,以便按照 API 文档的建议使用 LOOKUP_KEY 而不是 _ID 来存储联系人信息。我遇到的唯一问题是我无法再加载联系人的照片。
有问题的代码是这个:
InputStream s = ContactsContract.Contacts.openContactPhotoInputStream(getContentResolver(), contactUri);
这将返回以下错误:java.lang.IllegalArgumentException: URI: content://com.android.contacts/contacts/lookup/1424i118.2312i1220228108/photo
我用作参数的contactUri 是通过以下方式获取的:Uri contactUri = Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI, contact_key);
在这个例子中,contact_key 是 1424i118.2312i1220228108
根据 API 文档,这个辅助方法应该适用于我正在使用的 CONTENT_URI 或 CONTENT_LOOKUP_URI。
有什么想法吗?谢谢。
【问题讨论】:
-
旧版本的 Android (android.googlesource.com/platform/frameworks/base/+/gingerbread/…) 不支持查找 URI,但 Google 在文档中当然没有提到这一点:-(
标签: android android-contacts contactscontract