2011.03.10 18:10


다음 클래스는 전화번호를 가지고 DB에 저장되어 있는 Contact의 id 값과 이름. 그리고 그에 해당되는 사진 photo값을 가져오는 
클래스 이다.
* 2.2 기준입니다. *

...

public class ContactInfo
{
String name;
String id;
final String[] CONTACTS_PROJECTION = new String[]{
ContactsContract.CommonDataKinds.Phone.CONTACT_ID,
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME 
}; 
                
                //본 생성자에서는 인자값으로 넘어온 전화번호(number)에 해당되는 contact id 와 catact name을 
               가져와서 멤버 변수 name과 id에 저장해 준다.

public ContactInfo(ContentResolver resolver, String number)
{
Cursor cursor = resolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI , 
CONTACTS_PROJECTION, 
ContactsContract.CommonDataKinds.Phone.NUMBER+"=?", 
new String[]{number}, null);
if(cursor.getCount() < 1)
{
name = null;
id = null;
}
else
{
cursor.moveToFirst();
id = cursor.getString(0);
name = cursor.getString(1);
}
cursor.close();
}

               //위 생성자에서 구해진 id 값을 기준으로 해서 id와 name에 일치하는 Contact의 사진을 가져와서
               Bitmap 형식으로 반환해 준다.

public Bitmap getPhoto()
{
if(id == null) return null;
Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI,Long.parseLong((id)));
InputStream data = ContactsContract.Contacts.openContactPhotoInputStream(getContentResolver(), uri);
if(data != null)
return BitmapFactory.decodeStream(data);
else
return null;
}
}
신고
Posted by 구름같은사나이

티스토리 툴바