2014-08-29 3 views
2

연락처 (전화 번호부에 저장) 휴대 전화 번호, 직장 전화 번호 및 집 전화 번호를 가져오고 싶습니다. 내 3 개의 edittext보기에서이 숫자를 설정하고 싶습니다. 이 작업을 수행하는 방법? 여기연락처의 휴대 전화, 직장 및 집 전화 번호를 문자열로 가져 오기

Cursor phones = getActivity().getContentResolver().query(
     Phone.CONTENT_URI, 
     null, 
     Phone.CONTACT_ID + " = " + phoneId, 
     null, 
     null 
); 
while (phones.moveToNext()) { 
    number = phones.getString(phones.getColumnIndex(Phone.NUMBER)); 
    int type = phones.getInt(phones.getColumnIndex(Phone.TYPE)); 
    if (type == Phone.TYPE_HOME) { 
     number = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DATA)); 
     return number; 
    } 
    if (type == Phone.TYPE_MOBILE) { 
     number = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DATA)); 
     return number; 
    } 
    if (type == Phone.TYPE_WORK) { 
     number = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DATA)); 
     return number; 
    } 
} 

답변

1

이 PHONENUMBER, 전화 번호부에서 이름이 같은 연락처 정보를 얻을 수 this 링크를 시도 내 코드입니다. 그리고이 당신을하는 데 도움이

public List<Person> getContactList(){ 
    ArrayList<Person> contactList = new ArrayList<Person>(); 

    Uri contactUri = ContactsContract.Contacts.CONTENT_URI; 
    String[] PROJECTION = new String[] { 
      ContactsContract.Contacts._ID, 
      ContactsContract.Contacts.DISPLAY_NAME, 
      ContactsContract.Contacts.HAS_PHONE_NUMBER, 
    }; 
    String SELECTION = ContactsContract.Contacts.HAS_PHONE_NUMBER + "='1'"; 
    Cursor contacts = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, PROJECTION, SELECTION, null, null); 


    if (contacts.getCount() > 0) 
    { 
     while(contacts.moveToNext()) { 
      Person aContact = new Person(); 
      int idFieldColumnIndex = 0; 
      int nameFieldColumnIndex = 0; 
      int numberFieldColumnIndex = 0; 

      String contactId = contacts.getString(contacts.getColumnIndex(ContactsContract.Contacts._ID)); 

      nameFieldColumnIndex = contacts.getColumnIndex(PhoneLookup.DISPLAY_NAME); 
      if (nameFieldColumnIndex > -1) 
      { 
       aContact.setName(contacts.getString(nameFieldColumnIndex)); 
      } 

      PROJECTION = new String[] {Phone.NUMBER}; 
      final Cursor phone = managedQuery(Phone.CONTENT_URI, PROJECTION, Data.CONTACT_ID + "=?", new String[]{String.valueOf(contactId)}, null); 
      if(phone.moveToFirst()) { 
       while(!phone.isAfterLast()) 
       { 
        numberFieldColumnIndex = phone.getColumnIndex(Phone.NUMBER); 
        if (numberFieldColumnIndex > -1) 
        { 
         aContact.setPhoneNum(phone.getString(numberFieldColumnIndex)); 
         phone.moveToNext(); 
         TelephonyManager mTelephonyMgr; 
         mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
         if (!mTelephonyMgr.getLine1Number().contains(aContact.getPhoneNum())) 
         { 
          contactList.add(aContact); 
         } 
        } 
       } 
      } 
      phone.close(); 
     } 

     contacts.close(); 
    } 

    return contactList; 
} 

에 의해 게시 대답, 사람 CLASS

public class Person { 
    String myName = ""; 
    String myNumber = ""; 

    public String getName() { 
     return myName; 
    } 

    public void setName(String name) { 
     myName = name; 
    }  

    public String getPhoneNum() { 
     return myNumber; 
    } 

    public void setPhoneNum(String number) { 
     myNumber = number; 
    } 
} 

희망을 확인합니다.