2013-01-09 4 views
0

연락처 ID를 사용하여 android에서 연락처 세부 정보를 가져 오는 데 다음 코드를 사용하고 있습니다. 그러나 코드는 안드로이드 장치 버전 2.3.5 및 2.3.3 또는 위의 버전에서만 잘 작동합니다. 다음은 contactId가 특정 연락처의 ID 인 코드입니다. 실행이 if (phone.moveToFirst()) {} 부분으로 이동하지 않습니다. 쿼리에 문제가 있습니까? 그렇다면 버전 2.3.5에서 제대로 작동하는 이유는 무엇입니까? 도움이 될 것입니다 .. 감사합니다android에서 contactId에서 세부 정보를 얻으시겠습니까?

public String queryAllPhoneNumbersForContact(int contactId) 
{ 
    String[] projection = new String[] { Phone.NUMBER, Phone.TYPE }; 

    @SuppressWarnings("deprecation") 
    Cursor phone = managedQuery(Phone.CONTENT_URI, 
      projection, 
      Data.CONTACT_ID + "=?", 
      new String[] { String.valueOf(contactId) }, null); 

    if (phone.moveToFirst()) 
    { 
     int contactNumberColumnIndex = phone.getColumnIndex(Phone.NUMBER); 
     int contactTypeColumnIndex = phone.getColumnIndex(Phone.TYPE); 

     while (!phone.isAfterLast()) 
     { 
      String number = phone.getString(contactNumberColumnIndex).trim(); 
      int type = phone.getInt(contactTypeColumnIndex); 

      System.out.println("number" + number); 
      System.out.println("Type" + getString(Phone.getTypeLabelResource(type))); 

      phone.moveToNext(); 
      if ((getString(Phone.getTypeLabelResource(type)).equals("Mobile"))) 
      { 
       Log.e("WorkNo. : ", number); 
       return number; 
      } 
     } 
    } 
    phone.close(); 
    return null; 
} 
+0

이전 버전에서는 작동하지 않습니다. 또한 에뮬레이터 또는 장치를 사용하여이 작업을 수행했으며 어떤 장치를 사용 했습니까? 마지막으로 2.2 에뮬레이터/장치를 사용해 보셨습니까? – PearsonArtPhoto

답변

0

정확히 어떤 장치가 작동하지 않습니까? 주요 버전 및 장치에 잘 작동하는 2.2 버전을 사용하는 것이 좋습니다

+0

S5360 galaxy Y Android 버전 2.3.5 Works이 기능을 사용하면 다른 세부 정보를 가져올 수있는 contactId를 반환합니다. Gt-I9000 버전 2.3.3 또는 버전 4.0 이상에서는 작동하지 않습니다. – Joyson

관련 문제