Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> [Android]通過PhoneLookup讀取所有電話號碼

[Android]通過PhoneLookup讀取所有電話號碼

編輯:Android開發實例

前言

  讀取Android系統的通訊錄時一般會先讀取聯系人然後再讀取其號碼,嵌套循環讀取。如果通訊錄人數不多速度尚可,但是通訊錄裡有1-2百人恐怕就比較慢了,如果硬件再差點體驗就更差了。可以使用

ContactsContract.CommonDataKinds.Phone.CONTENT_URI(對應contacts2.db的數據視圖view_data_restricted)視圖來讀取避免嵌套讀取,而對於PhoneLookup.CONTENT_FILTER_URI確不能直接使用,這裡分享一下小技巧。

 

 

正文

  一、PhoneLookup.CONTENT_FILTER_URI的一般用法
 

 Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phoneNumber));
 resolver.query(uri, new String[]{PhoneLookup.DISPLAY_NAME,...

    API見這裡。如果直接如下使用PhoneLookup.CONTENT_FILTER_URI會報IllegalArgument Exception錯

getContentResolver().query(PhoneLookup.CONTENT_FILTER_URI,...

 

  二、 技巧用法
 

        Cursor c = getContentResolver().query(Uri.withAppendedPath(
                PhoneLookup.CONTENT_FILTER_URI, "*"), new String[] {
                PhoneLookup._ID,
                PhoneLookup.NUMBER,
                PhoneLookup.DISPLAY_NAME,
                PhoneLookup.TYPE, PhoneLookup.LABEL }, null, null, sortOrder);

    關鍵是這個"*",這樣就能取到所有的號碼以及相關的聯系人的姓名以及其他相關字段,比通過聯系人再查找其號碼要方便很多。

轉自:http://www.cnblogs.com/over140/archive/2011/06/29/2091541.html

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved