2010-08-05 2 views
0

여기에 관련된 몇 가지 질문을 읽었으며 이에 대한 답변을 찾을 수 없습니다. Android 2.1 장치 (HTC Incredible)가 있습니다. 내 응용 프로그램은, 그러나, 초기 (사전 SDK 5) 장치와 호환되어야합니다, 그래서 필터 URI의 사용되지 않는 형식을 사용하고 있습니다 :조회 전화 번호에서 연락 - 오래된 URI 대 새로운 URI : 오래된 실패, 새 성공?

Uri contactUri = Uri.withAppendedPath(Contacts.Phones.CONTENT_FILTER_URL, Uri.encode(number)); 
Cursor C = context.getContentResolver().query(contactUri , null, null, null, null)); 

양식이이를 찾는데 실패 15555551212.의입니다 최소한 내 장치에 문의하십시오. 그러나 새 (SDK 5 이상) ContactsContract 형식 URI로 변경하면

Uri contactUri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number)); 
Cursor C = context.getContentResolver().query(contactUri , null, null, null, null)); 

이 발생합니다. 원래 연락처의 해당 번호는 +1 555 555 5555 형식 이었지만 입력 번호 15555555555와 정확하게 일치하도록 변경했으며 이전 형식 URI도 여전히 실패합니다. 두 경우 모두 새 형식 URI가 성공합니다.

왜 이런 경우에 대한 의견이 있습니까? 나는 곤두박질 친다!

+0

문제는 Google 연락처가 아닌 전화 영역에있는 내 연락처로 인해 발생할 수 있습니다 ? 이전 API는 Google 연락처에 액세스하는 것으로 제한됩니까? –

답변

0

그게 전부입니다. 이전 API는 그냥 사용하지 않습니다. 이전 기기와 호환되도록 Reflection을 사용하여 API> 4에서 새 API 호출 (ContactsContract)을 사용했습니다.

관련 문제