アンドロイド 2.3.3
例の1つで次のコードを見つけました...
String image = cur.getString(cur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.PHOTO_URI));
if (image != null) {
contactViewHolder.imgContact.setImageURI(Uri.parse(image));
} else {
contactViewHolder.imgContact
.setImageResource(R.drawable.addcontactsmall2);
}
しかし、アプリケーションを実行しようとすると、IllegalStateException が発生します。ただし、他の例では、この URI はどこにも見つかりませんでした。これは連絡先の写真を取得する正しい方法ですか?
これは、カーソルを PHOTO_URI ::: の上に置いたときに表示されるものです。
文字列 android.provider.ContactsContract.ContactsColumns.PHOTO_URI = "photo_uri"
public static final String PHOTO_URI
Added in API level 11
A URI that can be used to retrieve the contact's full-size photo.
If PHOTO_FILE_ID is not null, this will be populated with a URI based off CONTENT_URI.
Otherwise, this will be populated with the same value as PHOTO_THUMBNAIL_URI.
A photo can be referred to either by a URI (this field) or by ID (see PHOTO_ID).
If either PHOTO_FILE_ID or PHOTO_ID is not null, PHOTO_URI and PHOTO_THUMBNAIL_URI shall not be null (but not necessarily vice versa).
Thus using PHOTO_URI is a more robust method of retrieving contact photos.
Type: TEXT
Constant Value: "photo_uri"