1
我真的很驚訝,我無法在任何地方找到答案。所以這是問題。查詢聯繫人(歸一化)電話號碼
ContentResolver resolver = getContentResolver();
String[] columns = new String[]{Phone.CONTACT_ID, Phone.DISPLAY_NAME, Phone.NUMBER };
String where = Phone.NUMBER+"=?";
String[] params = new String[] {"777 777 7777"};
Cursor cursor = resolver.query(Phone.CONTENT_URI, columns, where, params, null);
while (cursor.moveToNext()) { /* So on....*/
當params中的電話號碼被格式化爲「777 777 7777」時,我沒有記錄。當它是「777-777-7777」時,它會得到記錄。更糟糕的是TelephonyManager.EXTRA_INCOMING_NUMBER給我的號碼爲「7777777777」。如何查詢此電話號碼?文檔說Phone.NUMBER是用戶輸入它的方式。那麼,這對我沒有任何好處!
謝謝!我結束了這個: String phoneNumber =「777 777 7777」; \t \t烏里URI = Uri.withAppendedPath(Phone.CONTENT_FILTER_URI,Uri.encode(phoneNumber的)); \t \t字符串[]列=新的String [] {Phone.CONTACT_ID,Phone.DISPLAY_NAME,Phone.NUMBER}; \t \t光標光標= resolver.query(URI,列,NULL,NULL,NULL); – user123321
喜歡哥們:) :) –
謝謝。後續問題:該查詢非常慢,需要1300毫秒才能在具有4個聯繫人的模擬器中執行。你知道有什麼方法來加速它嗎?當我有數百個聯繫人時,我很擔心。 – user123321