2014-03-01 10 views
0

에서 연락처에 액세스하기위한 스레드가 많이 있지만, namenumber은 제외하고, city, state, country, postal code과 같은 다른 세부 정보에 액세스하고 싶습니다. 나는이 코드를 시도했지만 다른 것들은 null이다.주소록에서 선택한 도시, 국가, 우편 번호 찾기

   Cursor c = null; 
       try 
       { 
        Uri uri = data.getData(); 
        c = getContentResolver().query(uri, new String[] 
          { 
           ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, 
           ContactsContract.CommonDataKinds.Phone.NUMBER, 
           ContactsContract.CommonDataKinds.StructuredPostal.CITY, 
           ContactsContract.CommonDataKinds.StructuredPostal.STREET, 
           ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY }, 
          null, null, null); 

        if (c != null && c.moveToFirst()) 
        { 
         name = c.getString(0); 
         String number = c.getString(1); 
         city = c.getString(2); 
         street = c.getString(3); 
         country = c.getString(4); 
        Log.e("contactData...", name + ", " + street + ", " + number + ", " + city + ", " + country); 
        } 
       } 
       finally 
       { 
        if (c != null) 
        { 
         c.close(); 
        } 
       } 
+0

여기를 참조하십시오. - http://stackoverflow.com/questions/18181204/when-i-select-contact-name-and-address-from-contact-list-address-data-not-retrie – Sachchidanand

답변

0

연락처에 주소 값이없는 경우 null 이외의 값을 얻을 수 없습니다. 빨리 살펴보면 코드가 정상적으로 보입니다. 주소가 설정된 연락처로 테스트 해보십시오. 휴대 전화가 사용자의 주소를 무작위로 선택한다고 기대할 수는 없습니까?

앱에서 이것을 사용하는 데있어 한 가지 문제는 많은 사용자가 이름, 전화 번호 또는 이메일 외에 다른 것을 작성하지 않는다는 것입니다. 값을 사용하기 전에 주소가 null인지 확인하는 것이 가장 좋습니다.

+0

감사합니다. 대답, 전체 주소 정보를 가지고 그 연락처에 대한 위의 코드를 시도했지만 그 이름과 번호 만 제공. –