我正在使用以下代码来获取联系人图片:
Contact c = new Contact("", "", "", null);
Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI,pCur.getLong(pCur.getColumnIndex(Contacts._ID)));
InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(cr, uri);
if (input != null) {
Bitmap photo = BitmapFactory.decodeStream(input);
c.setContactImage(photo);
}
contacts.add(c);
Contact c = new Contact("", "", "", null);
Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI,pCur.getLong(pCur.getColumnIndex(Contacts._ID)));
InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(cr, uri);
if (input != null) {
Bitmap photo = BitmapFactory.decodeStream(input);
c.setContactImage(photo);
}
contacts.add(c);
我使用以下代码在适配器类中将联系人信息添加到我的视图中:
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if(convertView == null) {
holder.img = (ImageView)convertView.findViewById(R.id.imgContact);
Contact entry = getItem(position);
if(entry.getContactImage()!=null){
holder.img.setImageBitmap(entry.getContactImage());
}
}
static class ViewHolder {
TextView name;
TextView number;
ImageView img;
}
清单具有以下内容:
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if(convertView == null) {
holder.img = (ImageView)convertView.findViewById(R.id.imgContact);
Contact entry = getItem(position);
if(entry.getContactImage()!=null){
holder.img.setImageBitmap(entry.getContactImage());
}
}
static class ViewHolder {
TextView name;
TextView number;
ImageView img;
}
这似乎在模拟器上完美运行,但是当我在我的Android设备上测试它时它不起作用。我以相同的方式将图像添加到我的联系人,模拟器和设备都在2.3上,该设备是HTC感觉XL。
我从联系人列表中获得的其他信息对两者都有效。有没有人有这个问题的解决方案?
怎么做:
这就是你如何调用这个函数:
<uses-sdk android:minSdkVersion="9" />
<uses-permission android:name="android.permission.READ_CONTACTS"/>
答案 0 :(得分:2)
检查您的清单是否有权阅读联系人和MinSDkVersion值。
<uses-permission android:name="android.permission.READ_CONTACTS"/>
如果您使用的是Android 2.3,则Minsdk版本应为“9”
<uses-sdk android:minSdkVersion="9" />