연락처 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;
}
이전 버전에서는 작동하지 않습니다. 또한 에뮬레이터 또는 장치를 사용하여이 작업을 수행했으며 어떤 장치를 사용 했습니까? 마지막으로 2.2 에뮬레이터/장치를 사용해 보셨습니까? – PearsonArtPhoto