저는 전화의 연락처 목록을 이름과 사진으로 보여주는 활동을 만들고 있습니다. ListAdapter와 함께 Cursor와 Managedquery를 사용하여 모든 것을 레이아웃에 적용합니다.ListAdapter를 사용하여 BitmapFactory FileNotFoundException을 제어하는 방법
괜찮 았지만 Logcat에서 그림이없는 사용자와 관련된 오류가 표시되고이를 제어하고 싶고 안드로이드 기본 사진 아이콘이 보이지 않지만 길을 찾지 못했습니다. 해.
Example of the contact list generated
블루 블러 이름이다 : 여기
는 일례이다. 자신의 정체성을 유지하기 위해 숨겨진 : 여기P
것 코드 :Contactos.java는
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_contactos);
//Llamamos función para conseguir todos los contactos.
Cursor cursor = getContacts();
startManagingCursor(cursor);
// Llenamos la ListView con los contactos del teléfono
try {
ListAdapter infoContacto = new SimpleCursorAdapter(this,R.layout.contacto,
cursor,new String[] {ContactsContract.Contacts.PHOTO_THUMBNAIL_URI,ContactsContract.Contacts.DISPLAY_NAME},
new int[] {R.id.foto, R.id.nombreContacto}, 0);
setListAdapter(infoContacto);
}catch(Exception e){
Log.d("Excepcion",e.toString());
}
}
private Cursor getContacts() {
Uri contacto = ContactsContract.Contacts.CONTENT_URI;
/* Seleccionamos la información que necesitamos. ID SIEMPRE NECESARIO. */
String[] projection = new String[] {ContactsContract.Contacts._ID,ContactsContract.Contacts.PHOTO_THUMBNAIL_URI,ContactsContract.Contacts.DISPLAY_NAME};
/* Los ordenamos por nombre */
String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP;
String[] selectionArgs = null;
String ordenarPorNombre = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC";
/* Devolvemos los contactos */
return managedQuery(contacto, projection, selection, selectionArgs,
ordenarPorNombre);
}
로그 캣
06-08 23:50:41.429: E/BitmapFactory(20808): Unable to decode stream: java.io.FileNotFoundException: /: open failed: EISDIR (Is a directory)
06-08 23:50:41.429: I/System.out(20808): resolveUri failed on bad bitmap uri:
06-08 23:50:41.439: E/BitmapFactory(20808): Unable to decode stream: java.io.FileNotFoundException: /: open failed: EISDIR (Is a directory)
06-08 23:50:41.439: I/System.out(20808): resolveUri failed on bad bitmap uri:
06-08 23:50:41.469: E/BitmapFactory(20808): Unable to decode stream: java.io.FileNotFoundException: /: open failed: EISDIR (Is a directory)
06-08 23:50:41.469: I/System.out(20808): resolveUri failed on bad bitmap uri:
06-08 23:50:41.479: E/BitmapFactory(20808): Unable to decode stream: java.io.FileNotFoundException: /: open failed: EISDIR (Is a directory)
나는 경우를 놓아야합니다 생각 성명서 어딘가에 투영 defi 전에 if가 올바른 URI인지 파일인지, 디렉토리가 아닌지, 어디에서 어떻게 확인 하는가?
마지막 질문은 현재의 방법을 사용하거나 getContentResolver()로 바꾸는 것이 더 나은지 질문입니다 (blablabla ...) ??
감사합니다.
많은 감사의 인사! 그것은 내가 접촉 이미지를 제어하기 위해 찾고 있던 것이 었습니다. – arkanos
당신은 대환영입니다. –