Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo obtener la miniatura de Android Contact

Tengo un adaptador de listview y estoy intentando lo siguiente en el método newView :

 @Override public View newView(Context context, Cursor cursor, ViewGroup parent) { final LayoutInflater inflater = LayoutInflater.from(context); View v = inflater.inflate(layout, parent, false); long contactId = Long.valueOf(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID))); String contactName = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); boolean hasPhone = Boolean.parseBoolean(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))); String thumbnailUri = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.PHOTO_THUMBNAIL_URI)); TextView name_text = (TextView) v.findViewById(R.id.name_entry); if (name_text != null) { name_text.setText(contactName); } name_text.setTag(new Contact(contactId, hasPhone)); ImageView thumbnail = (ImageView) v.findViewById(R.id.thumbnail); if (thumbnailUri != null) { thumbnail.setImageURI(Uri.parse(thumbnailUri)); } else { thumbnail.setImageResource(R.drawable.ic_launcher); } return v; } 

Pero cuando intento analizar el Uri que se almacena en thumbnailUri, recibo el error siguiente:

  • ¿Cómo saber si la sdcard está montada en Android?
  • Cómo compilar la aplicación de Android con permisos del sistema
  • Establecer ID de recurso extraíble en android: src para ImageView utilizando el enlace de datos en Android
  • Android Studio: error: carácter ilegal: '\ u2028'
  • Android listView busca la cantidad de píxeles desplazados
  • Uso de la concurrencia de Android
  •   08-09 01:58:38.619: I/System.out(1471): resolveUri failed on bad bitmap uri: content://com.android.contacts/contacts/1/photo 

    ¿Estoy haciendo esto de la manera equivocada? Cualquier ayuda sería muy apreciada!

  • Localización de la aplicación Google Play Store
  • La biblioteca de caligrafía de chrisjenx no funciona
  • Android weightSum no funciona correctamente
  • ¿Es GUI para Android SDK administrador ido?
  • La barra de herramientas se expande deslizando
  • La actividad de Android se recrea
  • One Solution collect form web for “Cómo obtener la miniatura de Android Contact”

     private Uri getPhotoUriFromID(String id) { try { Cursor cur = getContentResolver() .query(ContactsContract.Data.CONTENT_URI, null, ContactsContract.Data.CONTACT_ID + "=" + id + " AND " + ContactsContract.Data.MIMETYPE + "='" + ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE + "'", null, null); if (cur != null) { if (!cur.moveToFirst()) { return null; // no photo } } else { return null; // error in cursor process } } catch (Exception e) { e.printStackTrace(); return null; } Uri person = ContentUris.withAppendedId( ContactsContract.Contacts.CONTENT_URI, Long.parseLong(id)); return Uri.withAppendedPath(person, ContactsContract.Contacts.Photo.CONTENT_DIRECTORY); } 

    Esta es la función donde necesita pasar el identificador de contacto y obtendrá el URI de la imagen que puede establecer fácilmente en la vista de la imagen.

    Utilice la respuesta uri de esta función como imageView.setImageURI (uri)

    Espero que funcione para su código.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.