2010-08-05 37 views
0

我已閱讀相關的幾個問題在這裏,無法找到答案:我有一個Android 2.1設備(宏達不可思議)。我的應用程序,但是,必須與早期(前SDK 5)設備兼容,所以我使用的過濾器URI的過時格式:查找聯繫人電話號碼 - 舊vs新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聯繫人? – 2010-08-05 12:34:18

回答

0

就是這樣。舊的API不會這樣做。爲了與舊設備兼容,我使用了Reflection在API> 4時使用新的API調用(ContactsContract)。

相關問題